我有一个简单的聊天室网络应用程序。我希望能够使用 JavaScript 将聊天记录保存到用户的 cookie 中。我刚刚遇到的问题是,当用户打开多个窗口时,他会将聊天消息多次保存到他的 cookie 中。读到这里一定很困惑,请看下面的例子:
聊天室中只有两个用户 A 和 B,A 表现正常,但 B 有两个窗口打开,都在同一个聊天室页面中。 A 说“早上好”,B 什么也没说,他看到的是:
A: Good Morning
到目前为止没有什么问题,但是当 B 将此消息保存到他的 cookie 中时,因为他打开了两个窗口,所以该消息将被保存到他的 cookie 中两次。那么下次他来到聊天室时,他看到的聊天记录将是:
A: Good Morning
A: Good Morning
如果B同时打开n个窗口,则该消息被保存n次。
我想到的一个解决方案是,当将消息保存到cookie中时,检查cookie中的最后一条消息是否与保存的消息相同,如果相同,则不再保存。
但对于用户确实多次发送相同消息的情况,这将忽略不应该的重复消息。
这个问题通常是如何解决的?我猜用户通常不能同时打开两个聊天室页面,但我允许他们这样做。
最佳答案
为每条消息分配一个服务器上唯一的 ID。检查本地聊天记录,看看该 ID 是否已存在于其中。
关于javascript - 当多个窗口打开时,如何避免多次写入相同的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692564/