我不知道該怎麼問這個問題,但我正在開發使用在服務器端的NodeJS單頁應用(SPA)和當數據被更新的用戶被告知,但是,如果用戶刷新不會json數據和每個腳本文件都會消失,再次從服務器請求獲取?在頁面刷新時是否從服務器再次請求JavaScript文件?
我怎麼能阻止javascript文件,特別是,從被再次請求頁面刷新JSON數據文件?
是有解決這個問題的方法嗎?
我不知道該怎麼問這個問題,但我正在開發使用在服務器端的NodeJS單頁應用(SPA)和當數據被更新的用戶被告知,但是,如果用戶刷新不會json數據和每個腳本文件都會消失,再次從服務器請求獲取?在頁面刷新時是否從服務器再次請求JavaScript文件?
我怎麼能阻止javascript文件,特別是,從被再次請求頁面刷新JSON數據文件?
是有解決這個問題的方法嗎?
JavaScript文件並不特殊。就像圖像,樣式表和HTML文件一樣,瀏覽器會根據需要重新請求它們。
所以儘量減少他們的再次獲取應用相同的技術。如果您配置Web服務器以在響應文件數據(如果瀏覽器仍具有副本)時設置適當的緩存標頭,則瀏覽器可以重新使用其緩存的文件副本。
你可以看到這對谷歌圖書館網站的例子。如果您要求的庫文件的特定版本(比如,jQuery 1.10.1)當你的Web控制檯開放的網絡選項卡,你會看到谷歌與這些頭返回它(省略不相關的):
Age: 238894 Cache-Control: public, max-age=31536000 Date: Thu, 09 Jan 2014 20:47:08 GMT Expires: Fri, 09 Jan 2015 20:47:08 GMT Last-Modified: Tue, 09 Jul 2013 11:31:25 GMT
注該文件被允許緩存,而不需要重新驗證一年。所以如果用戶刷新頁面,瀏覽器可以重用它的緩存副本(如果有的話)。 (這是不如果使用通配符的一個網址,「1.10 jQuery的任何版本」,自然是因爲尖端版本的變化是什麼谷歌沒有...)
某些瀏覽器可能繞過他們的緩存,刷新(特別是像「Ctrl + F5」一樣的「強制」刷新)。在這種情況下,他們至少可以發送一個If-Modified-Since
請求。
如果你想防止緩存,並在每一個請求重新加載的JavaScript,使您發售者使用正確的頭:
Cache-Control:max-age=0
您的瀏覽器將在undertand每次請求刷新所有資源。
有關緩存更好的理解,請給看看this A/Q
OP要防止重新加載。 –
至於JSON數據,可以將其保存在本地存儲(http://www.w3schools.com/html/html5_webstorage.asp)
好主意,可怕的聯繫。推薦:http://www.w3.org/TR/webstorage/ –
我個人更喜歡MDN。 developer.mozilla.org – 2014-01-12 15:20:55
或許你可以嘗試Application Cache和Local storage。
只有客戶端的東西纔會刷新,服務器端文件將做任何服務器說要做的事情。 –
你真的觀察過並且遇到過這個問題嗎? – JAL
@JAL不,我只是學習和思考它我想頁面刷新方式再次請求所有文件 – user1492051