2012-12-07 71 views
0

的鏈接,我有以下功能激活時,我點擊一些鏈接:History.js - 共享AJAX網頁加載

function showPage(page) { 
    var History = window.History; 
    History.pushState(null,null,page); 
    $("#post-content").load(page + ".php"); 
} 

的頁面更新,該URL的內容發生變化。但是我知道我肯定會做錯事。例如,當我刷新頁面時,它會給我發現Page Not Found錯誤,並且由於相同的原因,新頁面的鏈接不能共享。

有什麼辦法可以解決這個問題嗎?

回答

0

您需要根據JavaScript停止構建頁面。

服務器必須能夠自己構建它們。

然後,您可以使用JavaScript(pushState + Ajax)progressively enhance將上一頁轉換爲目標頁面,而無需重新加載所有共享內容。

你的問題是你在構建基礎之前已經完成了「增強」位。

1

這聽起來像你沒有路由你的動態網址到你的主應用程序。除非page引用服務器上的物理文件,否則如果您希望這些URL除了只是您的瀏覽器歷史記錄中的佔位符之外的任何內容,則需要在服務器端進行一些URL重寫。如果你不想搞亂服務器端,你需要使用另一種策略,比如用hashes黑客入侵URL。這樣,服務器仍然始終爲您的主應用程序頁面提供服務,然後應用程序頁面會讀取URL附加內容以決定需要動態呈現的內容。