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 相关文章推荐
JS二维数组的定义说明
Mar 03 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
谈谈JavaScript自定义回调函数
Oct 18 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
Koa 中的错误处理解析
Apr 09 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 Javascript
让你30分钟快速掌握vue3教程
Oct 26 Javascript
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 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
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
自己的js工具 Event封装
2009/08/21 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
js创建对象的方式总结
2015/01/10 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
2014年最新学习全国两会精神心得
2014/03/17 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
员工2014年度工作总结
2014/12/09 职场文书
Mysql基础之常见函数
2021/04/22 MySQL