Javascript 如何避免在多个窗口打开时多次写入同一cookie

Javascript 如何避免在多个窗口打开时多次写入同一cookie,javascript,cookies,Javascript,Cookies,我有一个简单的聊天室网络应用程序。我希望能够使用javascript将聊天历史保存到用户的cookie中。我刚才遇到的问题是,当用户打开多个窗口时,他会将聊天信息多次保存到cookie中。读这篇文章一定很困惑,请看下面的例子: 聊天室中只有两个用户A和B,A的行为正常,但B有两个窗口打开,都在同一个聊天室页面中。A说“早上好”,B什么也没说,他看到的是: A:早上好 到目前为止还没有什么问题,但是当B将此消息保存到他的cookie中时,因为他打开了两个窗口,所以此消息将保存两次到他的cookie

我有一个简单的聊天室网络应用程序。我希望能够使用javascript将聊天历史保存到用户的cookie中。我刚才遇到的问题是,当用户打开多个窗口时,他会将聊天信息多次保存到cookie中。读这篇文章一定很困惑,请看下面的例子:

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

A:早上好

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

A:早上好

A:早上好

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

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

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


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

在服务器上为每条消息分配一个唯一的ID。检查本地聊天历史记录,看看该id是否已经存在。

我谈论我的想法。因为每个窗口都有cookie。你将进入两个历史记录。我认为你可以为每个历史记录设置时间标记。每个人都不能发送两条或多条消息。你可以测试时间标记。然后判断此消息是否需要保存。

你可以保存每条消息的时间戳,如果消息和时间戳都匹配,则它是重复消息

举个例子,