发送cookie数据到服务器没有页面加载
我存储用户对cookie中的问题(多选)的响应。只有在用户尝试了20个问题后,服务器才从cookie中提取数据。 问题是当用户试图只说,10个问题和离开网站。 cookie中的响应不可用于服务器。 该要求不允许我从每个页面加载中提取cookie数据。 我正在考虑触发一个页面加载,在cookie到期之前,以便这些额外的数据可以与服务器同步。但无法找到任何解决方案。发送cookie数据到服务器没有页面加载
欣赏在这个问题上的指针
例如:有500页,全是选择题。 当用户尝试第一个问题时,答案被记录在cookie中。 第二页/第二个问题/下一页加载。服务器看着cookie ......不做任何事情,因为它只有一条记录。 接下来的问题......用户响应再次保存在cookie中。服务器在找到20条记录(20条记录的标志由一个标志刷新给出,如果是,服务器提取所有20条记录/问题的cookie数据并更新数据库,则它不执行任何操作),它将清除cookie并再次等待20条记录之前提取。 现在如果用户解决了下一个被记录在cookie,并离开场地10个问题,这些额外的10个问题都将丢失,因为服务器上没有提取他们,直到最后一页的负荷。
感谢, 的Pankaj
如果您问“如何在会话cookie过期时触发事件?”我认为您不可以,除非浏览器公开一个特殊的API来执行此操作。Cookie将在浏览器关闭时过期,或在特定的da te/time--但是当它的特定窗口关闭时,脚本将停止运行。
如果你不想改变你的服务器逻辑,或者给用户一个明确的“保存”按钮,我的建议是:
添加
beforeunload
event处理程序发送一个请求到服务器与“刷新”标志,表明用户正在离开页面,服务器应该存储所有剩余的数据。如果用户即将前往另一问题页面,则禁用该事件处理程序。
你如何实现2.取决于你的应用程序当前如何触发问题页面之间的转换。
如果您问“当用户离开页面时如何触发某个功能(例如,AJAX请求)?”你应该研究'beforeunload' [event](https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload)。如果你问别的东西,我不清楚它是什么。 –
我不知道用户何时决定离开网站,所以触发应该发生在cookie过期之前。或者有什么方法可以在用户离开网站后将cookie数据发送到服务器。 – user34484
听起来你正在使用会话cookie,但要记住,用户可以离开你的网站而不会真正结束会话;一个会话通常在* browser *关闭时结束。 –