<<High Performance JavaScript>>读书笔记-1.Loading and Execution
2012-08-09 10:00
411 查看
<script>标签会阻塞页面的解析过程,新的浏览器已经充许<script>标签之间可以并行下载,但仍然会阻塞其它资源的下载
Nonblocking Scripts
1.Deferred Scripts
<scripttype="text/javascript" src="file1.js" defer></script>
ie支持。
一个带有defer属性的<script>标签可以放置在文档的任何位置。对应的JavaScript 文件将在<script>被解析
时启动下载,但代码不会被执行,直到DOM加载完成(在onload 事件句柄被调用之前)
2.DynamicScript Elements
<script>和普通dom元素一样,可以被动态创建。用这种方法生成的<script>不会阻塞页面的解析过程
<script>的状态
Uninitialized
Loading
Loaded
Interactive
Complete
这些状态不一定全部出现
function loadScript(url, callback) { var script = document.createElement("script"); script.type = "text/javascript"; if(script.readyState) { //IE script.onreadystatechange = function() { if(script.readyState === "loaded" || script.readyState === "complete") { script.onreadystatechange = null; callback(); } } } else { script.onload = function() { callback(); } } script.src = url; document.getElementsByTagName("head")[0].appendChild(script); }
3.XMLHttpRequestScript Injection
var xhr = new XMLHttpRequest(); xhr.open("get", "file1.js", true); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) { var script = document.createElement("script"); script.type = "text/javascript"; script.text = xhr.responseText; document.body.appendChild(script); } } }; xhr.send(null);
相关文章推荐
- <<High Performance JavaScript>>读书笔记-7.Ajax
- <<High Performance JavaScript>>读书笔记-2.Data Access
- <<High Performance JavaScript>>读书笔记-8.Programming Practices
- <<High Performance JavaScript>>读书笔记-10.Tools
- <<High Performance JavaScript>>读书笔记-3.DOM Scripting
- <<High Performance JavaScript>>读书笔记-5.Strings and Regular Expressions
- <<High Performance JavaScript>>读书笔记-6.Responsive Interfaces
- <读书笔记>Javascript系列之6种继承(面向对象)
- <读书笔记>JavaScript系列之7种创建对象(面向对象)
- <script type="text/javascript">alert("hello world");</script>
- 读书笔记: optimizing program performance<computer system a programmer perspective>
- <<C++Primer PLus 第五版>>读书笔记4(终篇)
- <The C++ Programming Language> 读书笔记
- JavaScript中的<noscript>元素
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper使用
- <Javascript>js 计算日期相隔天数
- <C缺陷和陷阱>读书笔记
- <图形图像,动画,多媒体> 读书笔记 --- 录制与编辑视频
- <Learning JavaScript Design Patterns>
- <head first...>读书笔记