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 相关文章推荐
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
jQuery学习笔记之jQuery的事件
Dec 22 Javascript
js中小数转换整数的方法
Jan 26 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
jQuery使用each方法与for语句遍历数组示例
Jun 16 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
Vue vee-validate插件的简单使用
Jun 22 Vue.js
利用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 多个submit提交表单 处理方法
2009/07/07 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
python实现远程控制电脑
2019/05/23 Python
django 环境变量配置过程详解
2019/08/06 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python实现数字炸弹游戏
2020/07/17 Python
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
党校学习自我鉴定
2014/02/24 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
法律进机关实施方案
2014/03/12 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
四风之害观后感
2015/06/09 职场文书