2013-04-12 137 views
3

我最近看到一些网站使用这种模式:Document.ready澄清?

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 

    <script> 
    $(function(){...do some stuff with plugins...}); 
    </script> 

</head> 
<body> 


    <script src="myplugin1.js"></script> 
    <script src="myplugin2.js"></script> 
    <script src="myplugin3.js"></script> 
</body> 
</html> 

这让我想起了一些陷阱:

提问#的插件后引发未执行1

document.ready事件( JS)已被解析。

它在dom 结构完成时执行。 (声明:我没有说:“当所有的资源已经下载”!)

所以有可能是一种情况:document. ready功能将尝试使用尚未完全下载一个插件变量。 (这会导致错误)。

我对不对?

问题2 这使我:“从来没有使用的document.ready” 前的脚本引用的位置(我的意思是:在的document.ready依赖于那些脚本变量的情况下)。

我对不对?

p.s.我不是在谈论window.load这显然会在这里工作,但我不得不等待更长时间。

+0

你为什么要把'

1

在现代浏览器中$(document).ready等同于DOMContentLoaded的事件(并且它在传统浏览器中相当于相同的情景下可以回到其他一些情况)。

MDN总结它非常漂亮:当文档已经 完全加载和分析

的DOMContentLoaded事件被触发,而无需等待样式表,图片, 和子帧完成加载(负载可以将事件被用来检测 一个满载的页面)。

所以你的脚本将总是被执行时解析。

+0

等....脚本不在这里列表... –

+1

这就是要点。 – 2013-04-12 05:30:19

+0

哦.....愚蠢的我:-) –