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 cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
Jan 04 Javascript
JQuery插件开发示例代码
Nov 06 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
Layui 设置select下拉框自动选中某项的方法
Aug 14 Javascript
微信小程序new Date()方法失效问题解决方法
Jul 29 Javascript
js简单的分页器插件代码实例
Sep 11 Javascript
Vue数据双向绑定原理实例解析
May 15 Javascript
原生JS中应该禁止出现的写法
May 05 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
前端路由&amp;webpack基础配置详解
2019/06/10 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python使用socket远程连接错误处理方法
2015/04/29 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
python读取xlsx的方法
2018/12/25 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
在pycharm中显示python画的图方法
2019/08/31 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
运动会通讯稿500字
2014/02/20 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
2014全年工作总结
2014/11/27 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python