html中脚本的执⾏顺序
刚接触javascript,对于脚本放在html源码中的不同位置,执⾏顺序不太了解,做了个实验,贴出结果,记录下来以后⽤得着。
测试代码,如下:
⽐较这段代码在ie7和firefox中的表现如图
左侧是ie7弹出的现实列表,⽽右侧是firefox弹出的事件列表
对⽐可以发现,⼆者就是对defer的处理不同,其他还是⼀致的。什么是defer呢?这⾥是从⽹上到的⼀段⽂字:
----------------------------------------
javascript权威指南 版4中说到:
使⽤src性质从外部javascript⽂件读取脚本时,HTML解析器和javascript解释器都会停⽌下来等待⽂件装载完毕。
浏览器之所以这样做(在下载js⽂件期间,停⽌⼀切html的解析和渲染), 是因为在⽂件下载回来之前⽆法知道 js ⽂件中是否会包含 document.write 这种改变 dom 的语句。
使⽤ defer 来告诉浏览器,
"我的这段js代码不会包含document.write 啦, 你先放⼼解析和显⽰其他html啊。
jquery下载文件请求不⽤傻傻的等我,等你把html都处理完,再来处理我这⾥把"
这个时候浏览器就会暂时跳过你的这段js(就好像他们原本就不存在⼀样),等他忙完其他那些
乱七⼋糟的事情后才回过头来处理你的这个js,处理完你的这个js(就是包含defer属性的那些)后,
pycharm打开txt文件
浏览器想:“应该有onload事件”,于是 load事件触发了。
但是 firefox不⽀持defer
----------------------------------------c与c 有什么区别
所以才表现上述不同。这⾥我们可以看出:
1. ie才⽀持defer,所以如果写跨浏览器代码,就不要⽤它了
webstorm是干什么的
objective和objection怎么区分
2. 在head之中的js脚本最先执⾏,如果这⾥⾯的js使⽤src来载⼊,需要等这部分js完全载⼊在能进⾏下⼀步动作。如果这部分代码不改变dom,最好还是放到页尾
3. 页⾯中的js代码早于jquery和onload事件执⾏
4. jquery的ready时间早于onload事件执⾏,它不必等待页⾯中的图⽚加载就可以执⾏
5. onload等待所有的页⾯内容(包括图⽚)加载完毕后执⾏
系统架构师成长阶段这⾥测试并不全⾯,还可以完善,有兴趣可以做⼀下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。