我正在研究一個擁有大約10K行JavaScript代碼(不考慮第三方庫)的大型Web應用程序。爲了加快頁面加載速度,已決定將每個腳本文件自動連接成一個大型腳本,該腳本在第一次訪問應用程序時在客戶端上加載(並緩存)。由於每個頁面都有自己的腳本,其中包含了(實質上)相同功能中所需的所有JavaScript,因此這帶來了問題。
現在,如果在其中一個腳本中發生錯誤,則很難確定錯誤來自哪裏,因爲所有內容都被放入與每個頁面相同的腳本中,而不是在每個頁面中使用明確的script
聲明作爲之前完成。
有解決此問題的JavaScript模式嗎?我正在考慮類似於可以綁定到Web應用程序頁面中某些容器的AngularJS模塊。
但是,我想要一個簡單的自定義解決方案,因爲我們時間不夠,而且我們沒有時間在應用程序中實現框架。它應該只將特定的腳本(模塊)應用到它們各自的頁面,並且它應該允許開發者明確地聲明特定腳本所依賴的任何其他腳本(模塊)。另外,實現一個異常處理系統來通知用戶(例如在Firebug控制檯中)從哪個模塊發出異常(如果頁面的模塊依賴於其他模塊)會很好。 有沒有解決JavaScript中的這些問題(不依賴於框架)的常見手段?將JavaScript腳本綁定到它們各自的網頁
0
A
回答
0
您的問題可能的解決方案可能是使用js源地圖。許多concat/minify/uglify工具直接支持此功能,而大多數現代瀏覽器都可以解釋它們。
你仍然會成爲一個包含所有你的代碼(即使這是最有可能不來處理如此大量的代碼是最好的主意 - 在很大程度上取決於你的整體架構)的單個JS文件
但你的瀏覽器開發者工具現在可以顯示錯誤/控制檯輸出/ etc的原始文件名和行號。
您可能很可能不會在生產中提供源映射文件。
進入js源地圖的好點是this wiki。
相關問題
- 1. 用於讀取目錄中的文件並將它們移動到各自文件夾的Unix shell腳本
- 2. 將谷歌腳本綁定到Gmail
- 3. 將python腳本輸出到網頁
- 4. 從頁面導航中傳遞參數並將它們綁定到WP7中的網頁瀏覽器
- 5. 如何將自定義文本添加到MVC telerik網格的頁腳
- 6. 將ascii數字數組轉換爲它們各自的字符
- 7. .htaccess將所有image.php重寫爲它們各自的圖像URL
- 8. 如何使用自動腳本將輸入傳遞到網頁
- 9. 他們是如何將頁腳固定到頁面頂端的?
- 10. 頁腳中的自定義腳本
- 11. 將腳本的輸出封裝到它們運行的腳本中日誌
- 12. 將頁腳添加到自定義lsitview
- 13. Javascript將選定的網頁文本移動到MS Word
- 14. 在Windows中將多個文件提取到它們各自的目錄中
- 15. jQuery驗證並將表單錯誤鏈接到它們各自的字段
- 16. 將元素放置到UITableView頁腳中,何時釋放它們?
- 17. 將自定義JavaScript腳本添加到智能感知
- 18. 將所有.html網頁重定向到它們的.php等效項?
- 19. 將自定義腳本添加到ScriptManager?
- 20. 將jQuery腳本添加到wordpress自定義頁面
- 21. 如何將JQuery分頁實現到自定義腳本中?
- 22. 捆綁Sql腳本以安全的方式執行它們
- 23. 網頁未加載JavaScript腳本
- 24. HTML/JavaScript的腳本添加到我的網頁
- 25. 乘以類別並將它們綁定到數據庫Symfony2
- 26. 將jaydata實體綁定到ko observable(也包含它們)
- 27. 如何將我們自己的集合綁定到pivotviewer
- 28. 單頁各種計算腳本
- 29. 將WSDL轉換爲其各自的HTTP綁定
- 30. 將腳本打印到Javascript
對於開發,您可以捆綁腳本但不能縮小它們。那麼當你遇到錯誤時,你將能夠看到實際的代碼。對於生產用途,那麼最好不要有任何例外:) – Pointy
是的,這是我們這樣做的方式,但仍然很難跟蹤其中一個腳本中的錯誤(有10000行代碼)if出了點問題。如果開發人員在對應於特定頁面的腳本中犯了錯誤,那麼他可能會在完全不同的地方得到錯誤,因爲所有頁面上都加載了所有內容。 – Bogdan
看看[Grunt](http://gruntjs.com/)和[AMD/require.js](http://requirejs.org/docs/whyamd.html) – madhead