js实现延迟加载的几种方法


Posted in Javascript onApril 24, 2017

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

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

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

<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帮助页面的推荐方案。

//这些代码应被放置在</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代码,应放在一个外部文件,然后再引进来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI Tab 选项卡问题小结
Aug 16 Javascript
javascript循环链表之约瑟夫环的实现方法
Jan 16 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
vue.js全局API之nextTick全面解析
Jul 07 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
boostrap模态框二次弹出清空原有内容的方法
Aug 10 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
JavaScript的function函数详细介绍
Nov 20 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 #Javascript
浅析Angular2子模块以及异步加载
Apr 24 #Javascript
Angular2使用Guard和Resolve进行验证和权限控制
Apr 24 #Javascript
详解AngularJS 路由 resolve用法
Apr 24 #Javascript
详解AngularJS ui-sref的简单使用
Apr 24 #Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
Apr 24 #Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 #Javascript
You might like
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
angular 服务随记小结
2019/05/06 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python实现K最近邻算法
2018/01/29 Python
windows下python和pip安装教程
2018/05/25 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
容易被忽略的Python内置类型
2020/09/03 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
Python datetime模块的使用示例
2021/02/02 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
益达广告词
2014/03/14 职场文书
中队活动总结
2014/08/27 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
个人总结怎么写
2015/02/26 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书