2011-07-26 124 views
3

首先讓我說我的標題不完全解釋我的意思。問題是我創建了一個jQuery表來顯示視頻記錄。在表格中有一個指向視頻記錄顯示頁面的鏈接。我在顯示頁面<a href="javascript: history.go(-1)"></a>上有一個鏈接,讓我回到帶有jQuery的結果頁面。這個頁面載滿了javascript,包括對話框,每當我鏈接回這個頁面時,它會在加載時重新加載並顯示對話框內容,然後將它從屏幕上移除。我想知道是否無論如何重定向回緩存頁面或其他方法來減少加載的數量,因此在加載過程中不會顯示不必要的信息。請謝謝你的幫助。返回鏈接不刷新

+3

。你的後退按鈕不應該嘗試使用'history.go',它應該是一個鏈接回邏輯上是當前頁面的父頁的任何頁面。你不能依賴'歷史'的順序;用戶可能已經從書籤加載了您的頁面,或者禁用了歷史記錄/緩存。 – meagar

回答

2

檢查您的PHP頁面發送的HTTP響應頭。如果它告訴瀏覽器不要緩存頁面,那麼它可能會迫使瀏覽器不必要地重新加載。默認的PHP頭文件通常會告訴瀏覽器不要緩存。檢查的方法之一是通過使用curl命令行:

curl --head http://your.domain/foo.php 

這告訴你只有你的頁面會發送標題。像ExpiresCache-ControlPragma這樣的標題涉及瀏覽器緩存。舉例來說,在我的網站的一個典型的PHP頁面有如下標題:

HTTP/1.1 200 OK 
Server: nginx/1.0.4 
Date: Tue, 26 Jul 2011 15:51:53 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
Keep-Alive: timeout=20 
Set-Cookie: PHPSESSID=osumsgkcn7c1rb8udba33epek6; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
+0

關於第二個想法,我完全同意上面的@ meagar的評論,關於根本不使用'history.go()'。但是如果你仍然想使用它,頭部是我會檢查解決你的問題的第一件事。 – curtisdf

+0

我只使用history.go(),因爲我認爲這會幫助我點擊後退鏈接後重新加載頁面的問題。我只想返回到前一頁,而無需重新加載所有的JavaScript/jQuery。可能? –

+0

如何使用JavaScript設置一些cookie以保留後續重新加載頁面的狀態? jQuery有一個'jquery.cookie.js'插件,可以很容易地與cookie進行交互。 – curtisdf

0

OK,一個看到您的方案方式:

1 - 是你要求使用AJAX/JSON

做網頁

2 - 你有辦法來存儲加載的最後一頁上的內容

,因此您可以:

1 - 使用AJAX + JSON加載當前頁面,並存儲警察它在一個變量上(當前)

2 - 當用戶點擊一個鏈接(將他發送到另一個頁面)時,當前頁面(json)的內容存儲在一個變量(又名緩存) ,並且新的json覆蓋當前的變量值。當用戶點擊後退鏈接時,頁面驗證緩存變量是否有任何值,如果是,則加載該變量,否則從服務器調用內容。

這是基於我在這裏實現了例如極簡主義的想法:你不應該依賴東西,像瀏覽器的緩存功能http://neogamabbh.com.br/en