2011-07-09 107 views
5

我在頁面上有一些可拖動和可調整大小的DIV。我想保存這些DIV的狀態,這樣當頁面刷新時,DIV就像刷新之前一樣。頁面刷新時保存html元素的狀態

我注意到的東西,如Facebook聊天這樣做。刷新頁面時,打開的聊天窗口將保持打開狀態。有誰知道這是如何實現的?有人可以給我建議做類似的事嗎?

+0

解決方案是否需要使用JavaScript? Facebook的使用AJAX來實現聊天 –

+0

可能重複:http://stackoverflow.com/questions/4007131/can-i-capture-and-save-the-current-state-of-a-webpage-using-javascript –

回答

5

如果你想做到這一點Facebook並,您將需要發送AJAX請求到您的網頁以一定的時間間隔的另外一個,在Facebook中的情況下,每次發送郵件的時間。該頁面解析AJAX請求並在數據庫中更新它。刷新頁面時,將調用數據庫以查看聊天中顯示的內容。

使用的cookie的問題是尺寸限制(Facebook能夠使用數據庫存儲聊天的天數)。

你也不用擔心,如果客戶端已經停用Cookie,因爲所有的信息都存儲在服務器上。

1

嗯,不是簡單的,但有可能。您應該將該'狀態'存儲在cookie中,然後在頁面焦點(或加載)上檢索該cookie。

餅乾只承認串,你可以JavaScript對象使用

var str = JSON.stringify(obj); 

轉換爲字符串,並轉換回使用

var obj = JSON.parse(str); 

(JSON功能在現代瀏覽器支持)。

這樣,您就可以保存/恢復一個JavaScript對象,你可以存儲(在你的情況下)的一些座標,位置,大小,無論你需要什麼。

希望這會有所幫助。乾杯

+0

我會玩弄它,看看我能找到什麼。雖然cookie中可以存儲多少數據?我是否應該擔心延遲時間,因爲每個請求都會將所有Cookie發送到服務器? – matt

+0

每個cookie最多可以儲存4kb。對象序列化不應該佔用超過1k(大約200字節就足夠了,我認爲),所以滯後絕對不是問題 –

0

最終我只是使用AJAX系統保存在服務器端的數據。然後當頁面重新加載時,它使用保存的會話數據創建適當的顯示。