2010-12-13 115 views
2

我一直在打擊我的頭相當一段時間。我正在加載大約60個需要遵守特定依賴關係結構的腳本文件。通常在requirejs中加載它們不起作用,所以我開始使用訂單插件。RequireJS'傳統'腳本加載又名訂單插件

訂單插件在Firefox 3.6.12,IE7,IE8中效果很好,但我的應用程序在Chrome 8中爆炸。Chrome似乎以任何它感覺的順序執行。這是一個已知問題還是有一些解決方法?

回答

7

聲明,我對RequireJS的主要開發者:

目前已在打破順序插件夜間WebKits的變化。它也影響LABjs。它導致HTML5規範的實現改變了動態腳本加載行爲。好處是瀏覽器開始收斂,壞處是規範沒有考慮動態添加腳本元素的有序執行。

作者LABjs凱爾辛普森已經engaging the HTML5 group得到官方規格更改,支持命令執行動態添加的腳本。到目前爲止,Firefox的夜晚已經實現了一個變化,我相信WebKit也可能正在考慮它。 Another good writeup is by Henri Sivonen。所有這一切,我認爲它影響了WebKit的夜晚,我不確定Chrome 8是否已經接受了這個改變。我預計這可能是破解的原因,但我的訂單插件的單元測試似乎適用於Chrome 8中的我。

如果您可以確認您使用的是Chrome 8並且可能不是可能具有的開發人員頻道也許是Chrome 9,這將是很好的知道。知道你正在使用什麼版本的RequireJS也是很好的。 0.15有一個解決方案,對應於Firefox的夜晚變化。如果你使用的是舊版本的RequireJS,你可以嘗試更新的版本。

+0

感謝您的回覆,我確實聽說WebKit nightlies會在jQuery Summit 2010上被打破。我確定使用Chrome 8,我也在互聯網上看到了一個在我的Chrome中正常運行的小測試。你有什麼建議嗎?我使用這個的主要目的是加速開發並最終使用構建優化器。構建工具有點麻煩,因爲它似乎忽略了包含在訂單中的任何腳本!字首。 – Drew 2010-12-15 15:17:36

+0

作爲一個完整性檢查,我只是按照我發送的順序轉儲腳本,然後在我的html中將require作爲正常腳本標記。這在Chrome8和FF3中運行良好。是否有一些調試選項可用來查看未能在此處加載的內容? – Drew 2010-12-15 15:35:31

+1

優化程序已得到改進,可以很好地處理訂單!現在剛剛發佈的0.2.0的依賴關係,所以希望這將有助於構建情況。您可能還想嘗試0.2.0版本,訂單插件周圍存在一些錯誤修復和更改。如果這不起作用,請隨時與我聯繫,如果你有一個可重複的測試用例,我可以看看它。 – jrburke 2010-12-16 09:20:50