2011-10-24 69 views
0

我正在使用xmlhttprequest(和eval)來動態加載腳本。接下來我評估腳本並查看是否有其他腳本需要加載。一路上,如果有任何腳本導致異常,則報告的錯誤消息指示與eval關聯的行號,而不是腳本中的實際錯誤。同步<script>聲明?

another question有人建議我用<script>來取代更好的錯誤信息。不幸的是,<script>是異步的,我將無法控制加載腳本的順序(我需要一個onload回調)。

如何在<script>命令


一些更多的信息實現同步行爲,以什麼我的目標是實現

每個腳本都有它加載其他腳本列表,存儲在一個列表,讓稱它爲_toLoad

假設我們有一個腳本「Main.js」,象這樣

負荷列表

其中規定一旦加載,文件A.js必須被加載。一旦'A.js'被加載,'B.js'必須被加載。一旦'B.js'被加載,'C.js'必須被加載。一旦'C.js'被加載,'D.js','E.js'和'F.js'必須以任意順序加載。

我可以使用<script>加載'Main.js',評估它的_toLoad列表並開始加載其他腳本,並按照正確的順序。但是如果'A.js'有幾個腳本也會載入,會發生什麼?我希望那些在後臺加載,而不是從裝載

延遲「B.js」如果「A.js」有像這樣的負載名單:

_toLoad = [['A2.js'] , ['B2.js'] , ['C2.js'] , ['D2.js' , 'E2.js' , 'F2.js']]

是我會必須通過併發出<script>報表。當我首先需要一種寬度時,它似乎是一種深度優先方法。

+0

腳本[不能真正被加載同步] [1]。 [1]:http://stackoverflow.com/questions/3248384/document-createelementscript-synchronously – Wayne

+0

我還沒有使用它(但)我自己,但[YepNope.js(HTTP:// yepnopejs.com/)可能會有所幫助。我知道它被描述爲一個異步加載器,但是它控制腳本執行的時間,因此... – nnnnnn

+1

'