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 datepicker参数介绍和示例
Apr 15 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
基于vue循环列表时点击跳转页面的方法
Aug 31 Javascript
vue-自定义组件传值的实例讲解
Sep 18 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 Javascript
node.js 微信开发之定时获取access_token
Feb 07 Javascript
vuex分模块后,实现获取state的值
Jul 26 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 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基础学习笔记
2007/03/18 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
深入apache host的配置详解
2013/06/09 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
在Python中使用列表生成式的教程
2015/04/27 Python
python中threading超线程用法实例分析
2015/05/16 Python
python中__slots__用法实例
2015/06/04 Python
python3多线程知识点总结
2019/09/26 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Python实现扫码工具的示例代码
2020/10/09 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
高中语文教学反思
2014/01/16 职场文书
趣味体育活动方案
2014/02/08 职场文书
护理目标管理责任书
2014/07/25 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
西安导游词
2015/02/12 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书