我在防止Popstate事件發出Ajax請求時遇到了問題。Javascript Popstate事件阻止Ajax請求
所以,這是我的代碼:
$(window).on('popstate', function(e) {
var state = e.originalEvent.state;
if (state !== null) {
loadProducts(location.pathname);
}
});
function loadProducts(url) {
$.ajax({
type : "GET",
url : url,
dataType : "html",
cache : true,
success : function(checks) {
$(".ajaxpage").html(checks);
}
});
};
$('#product').on("click", ".paging a", function(e) {
e.preventDefault();
history.pushState(null, null, $(this).attr('href'));
loadProducts($(this).attr('href'));
});
pushState的事件確實很好用Ajax請求。但是當我點擊「後退按鈕」時,頁面會再次執行相同的Ajax請求。這是爲什麼?我不再需要Ajax了,因爲我已經訪問過那個頁面了?就像Github所做的一樣?
如何防止對popstate事件的ajax請求?
我的代碼有什麼問題?
你需要改變你的代碼緩存箇舊請求和重用響應。 – SLaks
是否意味着將緩存更改爲false或將其刪除?什麼是重用響應? –
您需要編寫代碼來存儲以前的回覆,以便完全跳過該請求。請注意,請求可能尚未完成;你應該使用承諾。 – SLaks