我刚刚意识到,我缺乏在将页面加载到浏览器中时究竟发生了什么的基本知识.
假设我有这样的结构:
<head>
<script src="jquery.js" type="text/javascript"></script>
<script src="first.js" type="text/javascript"></script>
</head>
<body>
...
<script type="text/javascript" id="middle">
// some more JS here...
</script>
...
<script src="last.js" type="text/javascript"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
以下是我的问题:
发生了什么事情?首先是DOM然后执行JS,反之亦然,还是同步(或者一旦JS文件完成下载,不考虑DOM)?我知道脚本按顺序加载.
哪里$(document).ready()适合?在Firebug的Net选项卡中,我看到了DOMContentLoaded事件和load事件.被$(document).ready()触发时,DOMContentLoaded事件触发?找不到任何具体信息(每个人只提到"加载DOM时").
"当DOM加载时"究竟是什么意思?所有HTML/JS都已被浏览器下载和解析?或者只是HTML?
以下方案是否可能:有一个$(document).ready()调用代码last.js,但在last.js加载之前运行?它最有可能在哪里(first.js在内联代码块中)?我该如何防止这种情况?
我想要了解什么时候发生什么以及取决于什么(如果有的话)的大局.
我有一个网页.加载此网页时,我想执行一些JavaScript.这个JavaScript使用JQuery.但是,似乎在加载页面时,jQuery库尚未完全加载.因此,我的JavaScript无法正常执行.
在执行JavaScript之前,确保加载jQuery库有哪些最佳实践?
说我有这样的事情
<script type="text/javascript" src="somefile.js"></script>
<div>something</div>
<script type="text/javascript">
// Some INLINE javascript
</script>
Run Code Online (Sandbox Code Playgroud)
(所有浏览器)是否保证在执行内联js代码时,somefile.js都已加载并且它可以在之前的div上运行?