请给出异步加载js方案,不少于两种

默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。

异步加载方式:

(1) defer,只支持IE

(2) async:

(3) 创建script,插入到DOM中,加载完毕后callBack,见代码:

function loadScript(url, callback){

var script = document.createElement("script")

script.type = "text/javascript";

if (script.readyState){ //IE

script.onreadystatechange = function(){

if (script.readyState == "loaded" ||

script.readyState == "complete"){

script.onreadystatechange = null;

callback();

}

};

} else { //Others: Firefox, Safari, Chrome, and Opera

script.onload = function(){

callback();

};

}

script.src = url;

document.body.appendChild(script);

}

转载于:https://www.cnblogs.com/xd1024/p/4660202.html

请给出异步加载js方案相关推荐

  1. 网页性能优化之异步加载js文件

    一个网页的有很多地方可以进行性能优化,比较常见的一种方式就是异步加载js脚本文件.在谈异步加载之前,先来看看浏览器加载js文件的原理. 浏览器加载 JavaScript 脚本,主要通过<scri ...

  2. phoneGap异步加载JS失败

    现在正在做一个phoneGap项目,安卓平台,有个异步加载JS总是失败,phoneGap也不好调试,一个问题纠结了一下午 最后找了半天,找到了原因,因此写本文记录一下,也顺便帮帮遇到同样问题的人 原因 ...

  3. 异步加载js的三种方法

    js加载时间线 : 它是根据js出生的那一刻开始记录的一系列浏览器按照顺序做的事,形容的就是加载顺序,可以用来优化什么东西,理论基础,背下来. 1.创建Document对象,开始解析web页面.解析H ...

  4. 异步加载js文件并执行js方法:实现异步处理网页的复杂效果

    异步加载js文件并执行js方法:实现异步处理网页的复杂效果 有这么一个场景,当你的网页页面效果过多就会造成了打开页面的速度变得缓慢,长时间处于加载的状态,这样的效果通常会让用户感到不友好,通常的处理方 ...

  5. angularjs 路由 异步加载js

    angularjs 异步加载js 有两种方法 第一种  使用$q 和 requireJS 加载 这个问题 首要出现 在 当我 把require 引入 项目中是,希望做到 点击路由时加载相应的页面htm ...

  6. JS 异步加载js的三种方案

    js文件同步加载的缺点: 页面的js文件一般是同步加载,加载到js文件会阻断html和css的加载,要等到js文件加载完毕,才能继续向下执行,因为js文件可能会操作html和css:但有些js文件不会 ...

  7. 异步加载js文件的方法总结

    方法一,jQuery.getScript HTML 代码: 代码如下 复制代码 <button id="go">Run</button> <div c ...

  8. 14. 异步加载Js的方式有哪些?

    我们都知道渲染引擎遇到 script 标签会停下来,等到执行完脚本,继续向下渲染,如下: <script type="text/javascript" src=". ...

  9. jekyll静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML

    在谷歌搜索的功能速度(实验性)中推荐使用工具PageSpeed Insights查看我的网页访问速度情况:PageSpeed Insights 分数很低,只有33分. 优化建议的第一条是移除阻塞渲染的 ...

最新文章

  1. Log4j的快速入门
  2. 进行面向对象设计时,就一个类而言,应该仅有一个引起它变化 的原因,这属于()设计原则。【最全!最详细解析!】
  3. Java 和 Python 解析动态 key 的 JSON 数据
  4. pandas 基本使用
  5. vue 结合swiper插件实现广告公告上下滚动的效果
  6. 应用Canary文件类型阻击勒索软件
  7. [置顶]       webservice系列1---基于web工程上写一个基本数据类型的webservice
  8. 翻译:Swift 5编写并发编程,并发解决方案和异步Operation
  9. Bad CPU type in executable
  10. Android Studio个人所得税首页布局制作
  11. 限定通配符和非限定通配符_什么是通配符?
  12. 向前的快捷键_快速提高逼格的电脑快捷键你懂多少?
  13. windows 7 开机错误 未能连接到一个Windows服务
  14. 北航计算机学院 张炯导师,北航计算机学院2011研究生招生复试规定与安排_跨考网...
  15. IDEA 支持vue
  16. SVN+SSH协议工作方式全解析,以Sourceforge为例讲解如何在Windows下配置TortoiseSVN和Su
  17. Matlab高斯白噪声信道仿真
  18. Latex学术论文期刊模版写作总结
  19. IPTV用户超225万 千兆宽带覆盖300小区
  20. vscode格式化文件时 vue文件报错

热门文章

  1. 单位阶跃信号是周期信号吗_vivoS7e是5G手机吗-支持5G吗-5G信号怎么样
  2. python模块_python模块
  3. js 正则判断用户是否输入表情
  4. ionic4 ios打开appstore 跳转第三方app
  5. c语言实验转换字母顺序结构,实验1顺序结构的程序设计-实验报告.doc
  6. 手机鸿蒙OS框架,鸿蒙OS正式“开源”!区别于iOS和安卓,实现了真正的纯国产!...
  7. 噪声产生原因_皮带输送机异常噪声的5种情况、减速机断轴的原因和解决方法...
  8. 利用layui来完成垂直和侧边导航的小案例
  9. mysql 处理文件函数_mysql数据处理与函数
  10. 暮色森林模组_《我的世界》暮色森林VS天启之境 到底谁才是冒险模组一哥