2012-12-12 23 views
4

我有一个大多数基本的HTML网页。有一个部分,我使用从外部源(url)提取的JavaScript加载RSS源。问题是我的页面会加载所有东西,直到该脚本,等待脚本加载(有时最多几秒钟),然后加载页面的其余部分。如何让脚本在网页上最后加载?

如何强制它在第一次渲染整个页面后加载脚本?

我的代码是这样的:

<html> 
<more html> 
<script language="JavaScript" src="http://..." type="text/javascript"></script> 
<more html> 
... 
+0

将脚本放在底部,或使用异步加载。 – adeneo

+0

@Cthulhu我敢肯定它恰恰相反。浏览器从上到下解析,并等待脚本加载。否则,在使用它的库运行之后,您还希望紧接着的代码如何?浏览器不会等待图像的URL解析和加载,虽然 – Ian

+1

@Cthulhu,它们按顺序加载并阻止页面的其余部分。如果他们不需要另一个库的必需库可能会导致问题。例如,一个小的jQuery插件会在jQuery之前加载。 – gpojd

回答

6

两个选项:

  1. 把你的脚本块在页面的末端。无论如何,这是一个很好的做法,因为您的页面结构将在用于处理它的脚本之前加载。因为用户通常会注意到页面加载而不是脚本,所以整体上会出现更快的加载。
  2. 在开头script标记中包含defer属性。请注意,defer只能用于外部脚本文件(具有src属性的文件)。见https://developer.mozilla.org/en-US/docs/HTML/Element/script
+0

1.我在我的页面的某个部分有它,因为我希望它在那里显示。如果我把它放在最底部,它将不在正确的位置。 2.“延迟”和“异步”均无法加载脚本。整个页面都被渲染,但没有显示RSS提要。 – wahle509

+0

你的脚本是从外部引用的吗? –

+0

是的,我有“src”拉动RSS源的URL位置。 – wahle509

1

将您的脚本标记移到最后,它会在其他所有内容之后加载。例如:

<html> 
    <more html> 
    <more html> 
    <script language="JavaScript" src="http://..." type="text/javascript"></script> 
</html 
1

在页面加载后制作脚本的一种非常可靠的方法是将脚本写出来包含在JavaScript中。

var theScript = document.createElement("script"); 
theScript.setAttribute("type","text/javascript"); 
theScript.setAttribute("src","//www.mysite.com/script.js"); 
document.getElementsByTagName("head")[0].appendChild(theScript);