2011-03-27 115 views
0
$('#Head a').click(function() 
{ 
    alert(""); 
    var link = $(this).attr('href'); 
    $.get(link, function(data) { 
     $('#NavDetailContent').html(data); 
     history.pushState(null, null, link); 
     e.preventDefault(); 
    }); 
    return false; 
}); 

$(window).bind("popstate", function() { 
    $.get(document.location, function(data) { 
     $('#NavDetailContent').html(data); 
     alert(""); 
    }); 
}); 

我在使用歷史API,但我發現了以下內容。歷史Api

  1. ,當我從一個AJAX鏈接移到非AJAX的鏈接,我點擊返回只從阿賈克斯拿到了內容僅供露面,而不是完整的頁面。那麼,爲什麼這是因爲歷史api或什麼(這是所有顯示的背上) enter image description here

  2. 當我刷新頁面的激活事件。這一次,如果我在非Ajax頁面上,它會觸發請求並將內容加載到div中。我已在我的服務器側照顧,以示對AJAX和非AJAX不同的頁面,即使它的Ajax請求,但它顯示了非AJAX頁面,只有在這種情況下,所有其他時間正常工作

+1

也許選擇一個更有意義的標題? – 2011-03-27 09:53:20

+0

演示頁面會很好... – 2011-03-27 09:54:22

回答

0

在此項目https://github.com/defunkt/jquery-pjax有使用特殊的HTTP標頭來防止這種情況。 它們使用相同的方式來生成內容AJAX和NONAJAX,但是如果您使用ajax,則在服務器端,不會生成arround內容。 所以,當你回去時,你發送鏈接到服務器沒有特殊的HTTP標題,所以頁面生成完整與所有意見arround。