我創建一個完整的Ajax應用程序,其中有一個基本頁面和用戶導航到應用程序中的任何頁面通過AJAX加載到頁面上的內容股利。在基本頁面上,我包含了應用程序中每個頁面所需的各種腳本(jQuery,jQuery-UI,其他自定義JavaScript文件)。然後在應用程序的各個頁面上,我爲每個頁面包含一個或兩個腳本,其中包含僅用於該頁面的邏輯。每個腳本文件都有一些在頁面就緒事件中執行的內容。問題是每次用戶導航到page1時,page1.js文件都會被加載。因此,如果他們訪問該頁面10次,那麼該腳本將被加載10次到瀏覽器中。在網站運行後查看Chrome腳本開發者工具,我看到大量重複的腳本。AJAX應用程序的JavaScript加載問題
我在其他地方見過查看是否腳本已使用一個布爾值或存放在數組中加載的腳本加載。但是,問題是,如果我看到腳本已經加載並且沒有加載它,那麼頁面就緒函數不會爲頁面的JavaScript文件觸發,並且一切都會失敗。
是否有具有JavaScript文件加載過來,當用戶訪問同一頁面多次了一個問題?
我注意到每次訪問該頁面時都會注意到網絡流量,該腳本需要一個隨機數字參數(/Scripts/Page1.js?_=298384892398),這會導致強制請求腳本文件每次。我在jQuery ajaxSetup方法中設置了緩存:true設置,並從請求中刪除了參數,因此加載了JavaScript文件的緩存版本,而不是實際爲其創建單獨的HTTP請求。但問題是,我不希望所有的Ajax請求都隨着內容的變化而被緩存。有沒有辦法強制JavaScript文件被緩存,但允許所有其他Ajax請求不被緩存。
即使我不得不對所有請求緩存,JavaScript文件還多次在開發工具出現了。也許這不是什麼大不了的事情,但似乎並不完全正確。
如何處理這種情況有什麼建議?
謝謝你的建議,但看看我的答案。原來是Chrome的東西。 – 2012-02-17 19:12:47