关闭浏览器窗口后,是否有可能发送AJAX?
我有一个带有JavaScript(jQuery)移动的浏览器游戏,如果我在每次移动后发送Ajax,那么服务器将很难。所以我想在用户关闭窗口(或书签)时发送一个AJAX。 它必须在所有现代浏览器中都能正常运行。
感谢您的回答
答案 0 :(得分:5)
我建议你在某种计时器上更新服务器,这样服务器就不会知道客户端处于什么状态(可能是客户端处于活动状态时每隔60秒),当客户端暂停服务器更新时不活跃。
然后,在您的用户界面中,为Close或Stop添加一些明显的用户界面元素,鼓励用户以这种方式关闭,然后在其中任何一个按钮被点击时更新服务器。
然后,您还可以挂钩页面的unload
事件,然后发送最后一个ajax调用。但是,并不是在所有情况下都会调用它,或者在所有浏览器中都不支持,所以除了之前的两种技术之外,还可以这样做。
答案 1 :(得分:1)
我认为没有一种实用的方法可以做到......但是你的问题肯定有解决方案。
您可以在某个时间间隔或游戏到达特定阶段时发送您的请求。
我们没有看到完整的情况所以请多评估一下,以便我或其他人可以提供帮助。
如果可能..我会添加“保存状态”或只是“保存”按钮。因此,用户知道如果他没有点击“保存”,则不会有任何“已保存”。
答案 2 :(得分:1)
您可以尝试window.onbeforeunload
例如:
function saveGame(e) {
if (!e) e = window.event;
//Ajax here
}
window.onbeforeunload = saveGame;
答案 3 :(得分:0)
我可以建议:
我知道这些步骤很难实现,但它们可以解决您的问题并解决它。
答案 4 :(得分:0)
关闭浏览器窗口后,您无法发送任何ajax请求。但是当用户单击窗口的关闭按钮时,您可以使用onUnload事件发送ajax请求。