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里,就可以了
浙公网安备 33010602011771号