2012-02-27 73 views
5

對不起,如果這是一個新手問題,但我真的不知道要搜索什麼。在瀏覽網站時如何保留上一頁的內容?例如,Facebook上的右側Activity/Chat欄。轉到不同的配置文件時,它似乎沒有刷新;它不是一個iframe,也不是ajax(我可能是錯的)。點擊鏈接後,您如何保留上一頁的內容?

感謝,

回答

2

在像Facebook聊天的情況下,你必須保存(在數據庫爲例)在服務器端的整個會話。然後,當用戶更改頁面時,您可以恢復服務器端的對話狀態(使用PHP),或者像聊天(Javascript + AJAX)一樣查詢您的服務器。

0

這不是在Javascript中完成的。它需要使用您的後端腳本語言來完成。例如,在PHP中,使用。由服務器端腳本設置的變量可以在服務器上維護,並使用cookie將其綁定在一起(在多個請求/命中之間)。

+1

我覺得他問的是在頁面導航過程中側邊部分是如何保持的,就像它是一個單獨的框架一樣。他正在尋找的答案可能涉及[操縱瀏覽器歷史](https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)。 – 2012-02-27 04:01:02

0

一個非常有用的技巧是在Firefox中運行HTTPFox,這樣您可以實際監控從一個頁面瀏覽到下一個頁面時發生的情況。您可以查看POST/Cookies/Response選項卡,並觀察頁面上的類AJAX行爲正在調用哪些Web方法。在這樣做時,通常可以推導出數據如何流入和流出頁面,即使您本身無法訪問服務器端代碼。

至於回答您的具體問題,有太多的方法可以列出(餅乾,服務器端的持久性,如會議或寫入數據庫,一個簡單的表單POST,VIEWSTATE在.NET等等)

-3

您可以通過按ctrl + shift + T來打開您最近關閉的網頁。現在您可以隨意保存內容。例如:如果我關閉了一個與document sharing相關的網頁,現在我正在旅行網頁上。然後我按ctrl + shift + T。現在我的最後一個網頁會自動打開。此功能適用於Mozilla,e Explorer,Opera等。希望這個答案對你有幫助。

+2

我相信這不是用戶所要求的。 – Purag 2012-02-27 04:36:06

3

我相信你在Facebook看到的並不是實際的「頁面加載」,而是巧妙地使用AJAX或AHAH

所以...想象你有一個網頁。它包含鏈接。這些鏈接中的每一個都有一個「鉤子」 - 當點擊鏈接時執行的一段JavaScript代碼。

如果您的瀏覽器不支持JavaScript,則鏈接將按照通常在老式頁面上的方式工作,然後加載另一個頁面。

但是,如果打開了JavaScript,那麼鉤子運行的代碼會導致請求被放置到不同的URL上,而這個URL只會提取應該用來替換DIV的HTML已經顯示在頁面上的某個地方。

如果JS不起作用,HTML中仍然存在一個真正的鏈接,因此您看到的HTML看起來應該如此。嘗試在瀏覽器中禁用JavaScript並查看Facebook如何工作。

像這樣的實時更新已經遍佈在Web 2.0應用程序中,從Facebook到Google Docs到Workflowy到Basecamp等等。「更好」的工具在可能的情況下提供底層HTML鏈接,以便沒有JavaScript的用戶仍然可以獲得充分利用這些應用程序。(根據您的觀點,這稱爲Progressive Enhancement or Graceful degradation)。當然,沒有人會希望Google文檔在沒有JavaScript的情況下工作。

+0

呵呵,這是他對這個問題的意思。對於AHAH, – Graham 2012-02-27 04:54:09

+0

+1,不知道這就是它被稱爲。我笑了。謝謝,魚。 – 2012-02-27 05:25:06

相關問題