我想控制人们离开我的应用程序的难易程度。现在,我知道我不能完全做到;这就是 cron 工作的用途。但我想抓住尽可能多的案例。
我想,我可以用它onBeforeUnload
来显示对话框,警告他们离开并要求他们点击退出按钮。
但后来我发现可以在调用时运行同步 AJAX (heh) 调用onBeforeUnload
;据我了解,它同步的好处是浏览器将等待它完成后再继续。这样,我可以在服务器关闭窗口时告诉服务器我正在注销。并且因为它是 inonBeforeUnload
而不是onUnload
,所以所有的数据仍然存在并且呼叫将被发送。
我的问题是,是否可以将这些结合起来?我想要一个弹出窗口警告他们离开,然后如果他们继续想离开,请发送他们实际上要离开的消息。
按照我的理解,我不能这样做;我可以:
- 只发送消息
- 只打开对话框
- 发送消息并打开对话框
...但是如果他们接受了对话,我就不能有条件地发送消息,对吗?我的理解是,当他们单击“确定,我想离开”时,它会立即触发onUnload
,到那时为时已晚。上面的#3 没有用,因为我不想发送他们正在注销的消息,然后让他们取消对话框并留在页面上。
我可以把我的蛋糕也吃掉吗?我可以问他们是否想离开,如果愿意,发送消息吗?