2011-07-09 70 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系统保存在服务器端的数据。然后当页面重新加载时,它使用保存的会话数据创建适当的显示。