基本上,我試圖弄清楚的是,在諸如Facebook這樣的網站上,諸如「您可能認識的人」等邊欄在加載時動態生成。如果您導航到另一個頁面,然後使用瀏覽器,請單擊歷史中的「返回」,帶有動態內容的側面板與第一次查看它們時的側面板相同。如何從歷史記錄加載不運行PHP?
在我的網站上,當您回到瀏覽器歷史記錄中時,我的動態內容與第一次說明時不同,但PHP運行並在頁面上放置了新的動態內容。
如果用戶點擊「歷史記錄」中的「後退」或「前進」,如何跳過運行PHP/SQL查詢?
這裏是AJAX調用我提出:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'post',
url: '/ajax/ajax_common.php',
async: true,
cache: true,
data: { [data here] },
success: function(data) {
$('#photos').html(data);
}
});
});
它得到的數據,但是當我去到另一個頁面,點擊返回它的變化,並沒有保存到緩存中。 AJAX查詢調用一個生成一些隨機照片的函數。
請記住,Facebook使用AJAX的99%的內容。也就是說,您看到的「緩存」只是預取的信息,可以重新加載。機會是你的後退按鈕正在發出全新的請求,而不是回到AJAX請求隊列中。 –
您需要爲腳本設置正確的Expires頭,以便瀏覽器緩存結果。 –
這是否會鼓勵使用memcache? Facebook是一個例子,還有很多其他的網站都這樣做。 – Fase