我的工作是遷移手動寫入腳本標記一個使用YUI3加載器來管理腳本依賴的應用程序。我正在與如jQuery腳本不應該被加載兩次的問題,因爲在某些情況下,舊代碼下降頁面上的腳本,然後YUI加載後再次加載它。有沒有辦法來防止這種情況發生?看起來加載程序應該能夠在注入新標記之前使用與它要創建的src相同的src查詢腳本標記。有沒有辦法阻止YUI3加載器加載已經在頁面上的腳本?
0
A
回答
0
事實證明,這樣做的一種方法是調用Y.add()主動對模塊的名字。這適用於本身沒有用Y.add()定義的模塊(例如jQuery插件)。但是,如果使用Y.add()定義的模塊執行此操作,則存在潛在的競爭條件。例如,請考慮以下順序:
- 爲模塊A腳本的運行(調用Y.add(「A」,...))
- YUI熄滅運行前加載模塊A的要求回調
- Y.add(「A」)與一個空的回調再次調用(通知YUI,對於一個腳本文件是在頁面上)
- YUI因爲異步加載還沒有恢復,YUI取空回調作爲甲
對FI定義x是使用下面的腳本:
var preloadedModules = ['a', ... ]; // list of module scripts already on the page
, noop = function (Y) { }, version = '@[email protected]', i, len, moduleName;
for (var i = 0, len = preloadedModules.length; i < len; ++i) {
moduleName = preloadedModules[i];
if (!YUI.Env.mods[moduleName]) { // avoids overwriting YUI module definitions
YUI.add(moduleName, noop, version);
}
}
0
this video的大約3/4會顯示如何加載非寫入YUI的外部模塊,並通知加載器它已被加載,因此它不會嘗試執行兩次。基本上,你監控裝載機的onProgress事件,火災時,你和你想給模塊則這將使得裝載機標記的名YUI.add()的模塊加載。
相關問題
- 1. 有沒有辦法阻止腳本加載兩次? JavaScript
- 2. 有沒有辦法阻止TinyMCE自動關注頁面加載?
- 3. 有沒有辦法停止瀏覽器的頁面加載?
- 4. jQuery腳本沒有AJAX加載頁面
- 5. 有沒有辦法阻止ie7加載一些內聯JavaScript?
- 6. 有沒有辦法阻止jqGrid自動加載?
- 7. 有沒有辦法告訴已經加載了多少圖片?
- 8. yepnope.js注入腳本上面已經加載的腳本
- 9. 有沒有辦法在Wordpress中異步加載腳本?
- 10. Post方法阻止頁面加載
- 11. 阻止頁面加載主頁面css
- 12. 有沒有辦法從Ironpython中的zipfile加載python腳本
- 13. 有沒有辦法訪問加載頁面的元素
- 14. 有沒有辦法阻止下載頁面在R Shiny中打開?
- 15. 有什麼辦法來阻止頁面加載的圖像與JavaScript?
- 16. 有沒有辦法阻止內容加載在最小寬度的屏幕
- 17. 有沒有辦法阻止加載圖像在jQuery對象化的HTML片段
- 18. 有沒有辦法處理緩慢加載document.write腳本?
- 19. 有沒有辦法同時加載JavaScript腳本?
- 20. 有沒有辦法讓iframe不能重新加載頁面?
- 21. 瀏覽器擴展:有沒有辦法停止加載圖像?
- 22. 頁面沒有加載wordpress
- 23. Twitter頁面沒有加載
- 24. UIWebView沒有加載頁面
- 25. 加載頁面後加載腳本?
- 26. 谷歌地圖沒有完全加載在頁面上加載
- 27. 有沒有辦法知道ImgTileProvider已經完成加載所有瓷磚?
- 28. jQuery表單插件 - 有沒有辦法在Ajax成功上加載頁面?
- 29. Ajax包含腳本阻止頁面加載
- 30. 有沒有辦法告訴瀏覽器在加載頁面時清除緩存?