[转]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 是并发模型。
Continue reading [转]Javascript 异步加载详解

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

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

Mac Oller获奖作品:Nowhere

1911-thumb
这组作品来自于波兰摄影者Mac Oller,并于Behance组织的“Bring Your Photography To Life”活动中获取奖励。

Behance活动网址:
http://www.behance.net/competitions/Bring-Your-Photography-to-Life/2413364/630467

Mac Oller:
http://www.macoller.com
Continue reading Mac Oller获奖作品:Nowhere

汽车微距

汽车微距
这组汽车微距景象,来自21岁的Kim Leuenberger,一个喜欢旅游的女孩子;
什么是微距拍摄?百度了一下,解释如下:

微距摄影是摄影活动中比较大的一类,可以说,绝大多数从事摄影活动的人士或多或少都接触过微距摄影。 微距摄影并不神秘,但是一些摄影爱好者对这类摄影方式有种不可捉摸的感觉,主要是从事了普通摄影之后,以为微距摄影是一种另类的方式,实际上微距摄影是普通摄影的延伸,它的工作机理与普通摄影是一样的,都要遵守光学的基本规律。
http://baike.baidu.com/view/50207.htm

Continue reading 汽车微距