多个窗口打开时如何避免多次写入相同的cookie

时间:2016-01-09 10:53:44

标签: javascript cookies

我有一个简单的聊天室网络应用程序。我希望能够使用javascript将聊天记录保存到用户的cookie中。我遇到的问题是当用户打开多个窗口时,他会多次将聊天消息保存到他的cookie中。阅读本文一定非常混乱,请参阅下面的示例:

聊天室中只有两个用户A和B,A正常,但B有两个窗口打开,都在同一个聊天室页面中。 A说"早安",B什么也没说,他看到的是:

  

A:早上好

到目前为止没有任何问题,但是当B将其保存到他的cookie中时,因为他打开了两个窗口,这条消息将被保存两次到他的cookie中。所以下次他来聊天室时,他看到的聊天记录将是:

  

A:早上好

     

A:早上好

如果B同时打开n个窗口,则会保存该消息n次。

我想到的解决方案是将消息保存到cookie中,检查cookie中的最后一条消息是否与保存的消息相同,如果它们相同,则不要再次保存。

但是对于用户真正多次发送相同消息的情况,这将省略不应该重复的消息。

这通常如何解决?我想用户通常不能同时打开两个聊天室页面,但我允许他们这样做。

3 个答案:

答案 0 :(得分:1)

在服务器上为每条消息分配唯一的ID。检查本地聊天记录,以查看该ID是否已存在于其中的任何位置。

答案 1 :(得分:1)

您可以保存每条消息的时间戳,如果消息和时间戳都匹配,那么它就是重复的消息。

以下是一个示例,how to get a timestamp in JavaScript

答案 2 :(得分:0)

我说说我的想法。因为每个窗口都会有cookie。你会把历史记录。我想你可以为每个历史记录设置时间标记。每个人都不能发送两个或多个消息。你可以测试时间标记。然后判断此消息需要保存还是不存在。