作者yllan (蓝永伦)
看板Ajax
标题javascript 的 include 问题?
时间Mon Apr 23 20:56:29 2007
hello, 我目前写的东西有两个需求,第一个就是希望能够在 javascript 中
引入别的 .js 档案,第二个就是希望能够等到引入的 .js 读完以後再执行一
些 initialize 的程式码。
说清楚一点,我想要作的东西是一个 js library,这个 library 是让别人
开发 .js 的时候能够引入的。别人开发怎麽样的 .js 呢?像 flickr Zeitgeist
只要在网页上插入一段 <script src="xxxx.js"></script> 就可以有照片、
玩偶、时钟那样的 .js 。
由於诉求是能够让使用者只要在适当的地方插入 <script src="xxx.js"></script>
就可以用,所以必须在别人开发的 xxx.js 里面引入我的 library,姑且叫做
lib.js 好了。
若是 user 只有在页面摆一个 xxx.js 那倒也还好,我用 window.onload=init;
和 document.write('<script src="lib.js"></script>'); 就可以等到全部载
入後再执行 init 。
但若有两个以上的 .js ,姑且称作 xxx.js 和 yyy.js 都有呼叫到 lib.js ,
要如何保证 xxx.js 和 yyy.js 都等到 depedent file 都载入完毕後再 init 呢?
如果用同一招 window.onload = init 好像会互相盖到...
推广到更复杂的状况,假设
xxx.js 呼叫 yyy.js, lib.js
yyy.js 呼叫 lib.js
zzz.js 呼叫 lib.js
我希望每个档案都等到呼叫到的档案载入、init 以後自己才能 init,
也就是希望能够 lib.js init -> zzz.js init -> yyy.js init -> xxx.js init
就是希望能够按照他们之间相依关系的拓扑排序顺序来呼叫...
请问大家有好解法吗?(唉,问题落落长,可能描述得不太好)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.31.182
1F:推 fillano:参考一下49开始的讨论串,里面应该有提到部份 04/23 23:49