读书人

javascript加载顺序的疑问?该怎么处理

发布时间: 2012-05-15 14:35:29 作者: rapoo

javascript加载顺序的疑问???

JScript code
var basePath = 'javascript/';function include(file) {        for (var i = 0; i < file.length; i++) {           ......           document.write("<" + tag + attr + link + "></" + tag + ">");        }}include(['jquery-1.4.1.min.js','book.js']);$._newFun= function (content, callback) {    ......};

为什么报$没有定义???明明已经先把jquery-1.4.1.min.js加进来了的,我用firefox看了源代码,没问题
而把$._newFun= function (content, callback) {};放在book.js里却能正常运行

[解决办法]
include 动态加载js

根据楼主描述 include 里的引入是按照顺序来加载的,
['jquery-1.4.1.min.js','book.js'],意思是 加载完了jquery 再加载book
所以 把$._newFun= function (content, callback) {};放在book.js里却能正常运行


如果
include(['jquery-1.4.1.min.js','book.js']);
$._newFun= function (content, callback) {
......
};
这样的话,
执行include的时候,仅仅是请求了2个加载链接,就马上执行$._newFun了,然而这个时候jq还没加载完毕,所以就 $没定义了。

楼主可以搜下 js非阻塞加载


[解决办法]
探讨

不知道 你 include 里具体是怎么写的。。。。

<script src="jquery-1.4.1.min.js"></script>
<script src="book.js"></script>
<script>
$._newFun= function (content, callback) {
......
};
</script>

楼主这样写的就是 阻塞……

[解决办法]
浏览器下载时阻塞了,但是你的html输出并没有阻塞

在回调里面执行吧

读书人网 >JavaScript

热点推荐