【发布时间】:2012-07-04 06:40:30
【问题描述】:
我有一个 Flash 游戏,我试图保存用户关闭浏览器选项卡时的状态。它使用以下 jquery 代码:
//Called from Flash when window closes
function sendRequest(url, params) {
$.ajax({
type: "POST",
async: false,
url: url,
data: params
})
}
$(window).unload(function() {
//Make Flash attempt to save the game when the window closes.
//Flash gets the necessary data and calls sendRequest()
document["flashGame"].saveBeforeUnload();
});
- Firefox:正常工作
- Chrome:重新加载时正常工作,但关闭标签页或关闭浏览器时不能正常工作
- IE(所有版本):根本不工作
我希望它在所有浏览器中都能正常工作,但最重要的是 Chrome(我们的用户中没有多少有 IE)。
Flash 正确调用了 sendRequest(在所有浏览器中,都通过警报进行了测试),所以我不认为问题来自 Flash,但它可能。
【问题讨论】:
-
如果用户想要关闭浏览器,我认为您不能也不认为您应该依赖 .unload。如果浏览器等待,您的请求是否应该花费超过几毫秒的时间来保存?为什么不将游戏保存在一个 30 秒的计时器上,这样他们最长的退出时间是 30 秒,那么您就不必担心卸载事件
-
@dstarh:我们已经在计时器上保存了游戏。这样做的目的是防止玩家失去最后几秒钟的动作。通常,最后几个动作很重要。
-
所以你是说点击X关闭浏览器窗口的人应该期望他们在过去几秒钟内所做的一切都应该被保存?我认为训练用户点击保存按钮然后关闭浏览器是更好的时间。我们需要让用户摆脱“我从墙上拔了电源线,为什么没有全部保存??????!!!”的心态
-
使用
window.onbeforeunload与stackoverflow.com/questions/10616437/…>
标签: javascript jquery flash onbeforeunload