[转]Javascript 异步加载详解

本文总结一下浏览器在 javascript 的加载方式。
关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性

一、同步加载与异步加载的形式

1. 同步加载

我们平时最常使用的就是这种同步加载形式:

<script src="http://yourdomain.com/script.js"></script>

同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。
js 之所以要同步执行,是因为 js 中可能有输出 document 内容、修改dom、重定向等行为,所以默认同步执行才是安全的。
以前的一般建议是把<script>放在页面末尾</body>之前,这样尽可能减少这种阻塞行为,而先让页面展示出来。

简单说:加载的网络 timeline 是瀑布模型,而异步加载的 timeline 是并发模型。
继续阅读[转]Javascript 异步加载详解

分享EditPlus快速格式化js/css工具

在“利用YUI Compressor压缩JS/CSS之终极秘籍”一节中,我讲解了一些关于如何通过YUI Compressor来压缩js/css;相反的情况是,如果想查看别人已压缩的js/css文件,怎么办呢?那就需要将这些压缩后的js/css/html进行格式化。
继续阅读分享EditPlus快速格式化js/css工具