什么是同步加载与异步加载
什么是同步加载
在加载数据时仍然执行其他程序,通常加载时是不执行程序的,我们不得不等进度条,因为很多程序在没有加载数据时,可能是无法运行的,所以通常会加载完之后才运行。我们在新手建站教程中,讲到的JS就是特别常使用同步加载形式:
<script src="js/jQuery.js"></script>
同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。
js 之所以要同步执行,是因为 js 中可能有输出 document 内容、修改dom、重定向等行为,所以默认同步执行才是安全的。
在wordpress仿站教程中,我们一般建议是把<script>放在页面末尾</body>之前,这样尽可能减少这种阻塞行为,而先让页面展示出来。
什么是异步加载
异步加载就是在执行过程同时加载,通常会使图片之类重要性较次的东西,可以先忽略掉,比如游戏论坛网站制作中,网页游戏经常会在玩的过程中,玩家都是黑影(未加载图形,由其他黑影模型代替),如果另一个线程完成加载了,在贴上去,就是异步。这在学做网站论坛的新手网站制作教程也讲到了这一点。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});
异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。
这种方法是在页面中<script>标签内,用 js 创建一个 script 元素并插入到 document 中。这样就做到了非阻塞的下载 js 代码。例如百度统计功能就是使用异步加载的方式,方法见:百度联盟广告位实现异步加载方法