http://www.dewen.org/q/4134?sort=votes

 

JavaScript代码默认是同步执行的,不管是内嵌的还是外部的JavaScript代码,都会阻塞后续html代码的加载和渲染以及后续JavaScript的解析。这是个必要的特性,试想一下,如果你要使用某个功能,例如Jquery库的功能,把Jquery库放在你是用的代码之前(一般放在head里),这样你在其后的任何位置都可以无限制的使用Jquery的功能而不用担心其Jquery函数功能是否已经被解析载入。

但如果你这有一个JavaScript文件比较大,而这一部分的功能比较独立,没有他也不会影响页面的显示效果,那就可以考虑把它放在body的最后,即</body>之前,这样整个页面载入了,页面完全显示了才开始处理这部分JavaScript,当然,也可以loadJs等异步加载方式进行异步加载,这样就不会阻塞其他HTML和JavasScript了。

 

 

 

做社联网站的时间轴与此问题

 

<script src="js/jquery.timelinr-gbin1.js" type="text/javascript"></script>

<script src="js/cufon-yui.js" type="text/javascript"></script>

<script src="js/voxBOX_400.font.js" type="text/javascript"></script>

<script type="text/javascript"> 
$(function(){
Cufon.replace('#timeline a, #timeline h1').CSS.ready(function() {

$().timelinr({autoPlay:'true', autoPlayPause:'3000', cssAnimation:'tada'});

});
});
</script>
<script type="text/javascript" src="js/fixie.js"></script>

 

这些放到head里时间轴不能正常显示,但放到body里,就可以了