共有:defer和async、动态创建DOM方式(用得最多)、按需异步载入js

defer属性:(页面load后执行)

HTML 4.01 为 <script>标签定义了 defer属性。 
用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行

<script> 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行

<head>
<script src="test1.js" defer="defer"></script>
<script src="test2.js" defer="defer"></script>
</head>

  

async属性:(页面load前执行)

HTML5 为 <script>标签定义了 async属性。与defer属性类似,都用于改变处理脚本的行为。同样,只适用于外部脚本文件。 
目的:不让页面等待脚本下载和执行,从而异步加载页面其他内容。异步脚本一定会在页面 load 事件前执行。不能保证脚本会按顺序执行。

<head>
<script src="test1.js" async></script>
<script src="test2.js" async></script>
</head>
<body>

  

动态创建Dom:

//这些代码应被放置在</body>标签前(接近HTML文件底部)
<script type="text/javascript">
function downloadJSAtOnload() {
varelement = 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>

  

最新文章

  1. protocol buffers的使用示例[z]
  2. HTML常用命名和CSS reset代码【收集总结】
  3. oracle表空间相关
  4. [daily][network] NAT原理(转)
  5. ZJOI 仓库建设 (斜率DP)
  6. Awesome Algorithms
  7. EXTJS4.2 控件之Grid getRowClass 添加行背景色
  8. javascript控制子页面对父页面控件操作
  9. 2011年-CUshell编程大赛
  10. 适用于SQl数据的Sql语句
  11. .NET 通过 Autofac 和 DynamicProxy 实现AOP
  12. 在servlet中跳转问题
  13. TCP可靠数据传输
  14. es修改指定的field(partial update)
  15. Kali linux 2018安装后全屏乱码解决
  16. 根据tomcat的日志判断web的发布路径以及服务路径
  17. 各大主流.Net的IOC框架性能测试比较(转)
  18. window.location.href详解
  19. 为web文件夹添加IIS应用程序池用户权限
  20. 让子类使用父类的Logger

热门文章

  1. (初学)wpf仿QQ界面-整体布局
  2. [转]Linq语法二
  3. 第三方缓存软件memcached和redis异同
  4. JDBC之Java连接mysql实现增删改查
  5. 【起航计划 012】2015 起航计划 Android APIDemo的魔鬼步伐 11 App-&gt;Activity-&gt;Save &amp; Restore State onSaveInstanceState onRestoreInstanceState
  6. mvc中尽量避免使用HttpContext.Current.Request
  7. 【工作中学习】CreateProcessAsUser失败,错误码:1314
  8. spring mvc踩坑记
  9. hibernate 模拟实现和What is and Why O/R Mapping
  10. Struts2_Struts标签