如何延迟加载

Posted superclound

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何延迟加载相关的知识,希望对你有一定的参考价值。

 

js的延迟加载有助与提高页面的加载速度,以下是延迟加载的几种方法:

1.使用setTimeout延迟方法的加载时间

延迟加载js代码,给网页加载留出更多时间

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" >
  function A()
    $.post("/lord/login",name:username,pwd:password,function()
      alert("Hello");
    );
  
  $(function ()
    setTimeout(‘A()‘, 1000); //延迟1秒
  )
</script>

2.让js最后加载

例如引入外部js脚本文件时,如果放入html的head中,则页面加载前该js脚本就会被加载入页面,而放入body中,则会按照页面从上倒下的加载顺序来运行JavaScript的代码~~~ 所以我们可以把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度

3.上述方法2也会偶尔让你收到Google页面速度测试工具的“延迟加载javascript”警告。所以这里的解决方案将是来自Google帮助页面的推荐方案。

1
2
3
4
5
6
7
8
9
10
11
12
13
//这些代码应被放置在</body>标签前(接近HTML文件底部)
<script type="text/javascript">
  function downloadJSAtOnload()
    var element = document.createElement("script");
    element.src = "defer.js";
    document.body.appendChild(element);
  
  if (window.addEventListener)
    window.addEventListener("load", downloadJSAtOnload, false);
  else if (window.attachEvent)
    window.attachEvent("onload", downloadJSAtOnload);
  else window.onload = downloadJSAtOnload;
</script>

这段代码意思是等到整个文档加载完后,再加载外部文件“defer.js”。 

使用此段代码的步骤: 

1).复制上面代码

2).粘贴代码到HTML的标签前 (靠近HTML文件底部)

3).修改“defer.js”为你的外部JS文件名

4).确保你文件路径是正确的。例如:如果你仅输入“defer.js”,那么“defer.js”文件一定与HTML文件在同一文件夹下。

注意:这段代码直到文档加载完才会加载指定的外部js文件。因此,不应该把那些页面正常加载需要依赖的javascript代码放在这里。而应该将JavaScript代码分成两组。一组是因页面需要而立即加载的javascript代码,另外一组是在页面加载后进行操作的javascript代码(例如添加click事件或其他东西)。这些需等到页面加载后再执行的JavaScript代码,应放在一个外部文件,然后再引进来。

以上是关于如何延迟加载的主要内容,如果未能解决你的问题,请参考以下文章

如何延迟从页面加载开始显示Gif?

延迟加载 UIScrollView 页面时如何摆脱障碍

Hibernate检索策略之延迟加载和立即加载

如何检查 Angular 模块延迟加载是不是适用于 Chrome?

如何在加载延迟加载的路由组件时显示“加载”动画?

如何在响应本机的平面列表中应用延迟加载