2011-03-23 34 views
0

我想緩存一個非常簡單的JavaScript響應。我使用的鐵軌和我的意見/項目/ index.js.erb的只包含以下內容:jquery腳本請求不緩存

  alert('hi'); 

,當我要求

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

我得到了彈出「HI」,我在看我的服務器將對項目#索引操作的請求記錄爲js。

然後無需刷新瀏覽器,我又

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

我看到服務器仍然得到一個請求做 任何人都可以點任何東西,我可能會錯過?

謝謝!

+0

您是否收到任何錯誤? – 2011-03-23 02:18:40

+0

不,控制檯中根本沒有錯誤。我查了firefox和chrome的控制檯。並且我沒有收到記錄在服務器日誌中的任何請求;而且我已經開始創建一個新的簡單應用程序,以便其他插件/腳本或任何其他內容都不會干擾。只是一個裸體的裸機頁面,現在什麼也沒有。 – 2011-03-23 02:19:32

+2

也許我在看jQuery文檔錯誤,但不是getScript的第二個參數回調函數? – BStruthers 2011-03-23 02:19:47

回答

1

我發現了什麼是錯的。 jQuery實際上將傳入的腳本用a包圍,以便瀏覽器評估傳入的代碼。但緩存機制僅僅將代碼保存爲文本,並且當重新請求時,它將代碼作爲文本返回,但不對其進行評估。因此,需要明確評估代碼

+0

用什麼來包圍傳入的腳本? – 2012-12-07 06:00:34