<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="用LABjs或RequireJS来异步加载Javascript文件" id="card1">
<p> 游客</p><p>
标题:用LABjs或RequireJS来异步加载Javascript文件<br/>
正文:<br/>
传统上，加载Javascript文件都是使用&amp;lt;script&amp;gt;标签。就像下面这样：　　&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;example.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;标签很方便，只要加入网页，浏览器就会读取并运行。但是，它存在一些严重的缺陷。　　（1）严格的读取顺序。由于浏览器按照&amp;lt;script&amp;gt;在网页中出现的顺序，读取Javascript文件，然后立即运行，导致在多个文件互相依赖的情况下，依赖性最小的文件必须放在最前面，依赖性最大的文件必须放在最后面，否则代码会报错。　　（2）性能问题。浏览器采用&amp;quot;同步模式&amp;quot;加载&amp;lt;script&amp;gt;标签，也就是说，页面会&amp;quot;堵塞&amp;quot;（blocking），等待javascript文件加载完成，然后再运行后面的HTML代码。当存在多个&amp;lt;script&amp;gt;标签时，浏览器无法同时读取，必须读取完一个再去读取另一个，造成读取时间大大延长，页面响应缓慢。为了解决这些问题，可以使用DOM方法，动态加载Javascript文件。　　function loadScript(url){　　　　var script = document.createElement(&amp;quot;script&amp;quot;);　　　　script.type = &amp;quot;text/javascript&amp;quot;;　　　　script.src = url;　　　　document.body.appendChild(script);　　}这样做的原理是，浏览器即时创造出一个&amp;lt;script&amp;gt;标签，然后&amp;quot;异步&amp;quot;读取Javascript文件。这样不会造成页面堵塞，但会造成另外一个问题：这样加载的Javascript文件，不在原始的DOM结构之中，因此在DOM-ready（DOMContentLoaded）事件和window.onload事件中指定的回调函数对它无效。外部函数库LABjs和RequireJS，可以帮助我们更有效地管理Javascript加载。下面根据ScriptJunkie的文章，举一个最简单的例子，来说明这两个函数库的基本用法。更高级的<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=590&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=590&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=590&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=590&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=590&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=590">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=590">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>