如何在网页上最后加载脚本?

时间:2012-12-12 18:53:14

标签: javascript html rss load

我的网页上主要是基本的HTML。有一个部分我使用JavaScript从外部源(url)加载RSS源。问题是我的页面会加载所有内容直到该脚本,等待脚本加载(有时最多几秒),然后加载页面的其余部分。

如何在首先渲染整个页面后强制它加载脚本?

我的代码是这样的:

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

5 个答案:

答案 0 :(得分:8)

两个选项:

  1. 将您的脚本块放在页面的末尾。无论如何,这是一种很好的做法,因为您的页面结构将在用于操作它的脚本之前加载。由于用户通常会注意到页面加载而不是脚本,因此整体上会出现更快的负载。
  2. 在开始defer标记中加入script属性。请注意,defer只能用于外部脚本文件(具有src属性的脚本文件)。见https://developer.mozilla.org/en-US/docs/HTML/Element/script

答案 1 :(得分:2)

defer 属性添加到头部的 script 标签也有效

<script language="JavaScript" src="http://..." type="text/javascript" defer></script>

答案 2 :(得分: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);

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

您可以尝试将调用提要的函数包装在

jQuery(window).load(function(){
//embed RSS feed 
});

强制其最后加载。