gpt4 book ai didi

javascript - 在 "onbeforeunload"事件上将客户端状态更新到服务器

转载 作者:行者123 更新时间:2023-11-30 06:48:29 25 4
gpt4 key购买 nike

我有一个 Flash 应用程序需要向服务器发送一个 http 请求,这将立即断开现有 session 。我尝试了几个选项,但没有一个是可靠的。选项 #1:在“onbeforeunload”事件中,从 Flash 应用程序内部发送一个 http 请求。谬误:这是行不通的,因为一旦浏览器关闭,Flash 播放器就会卸载应用程序,因此通信中断。

选项 #2:在“onbeforeunload”事件上使用 ajax 中的 XMLHTTPRequest 发送 http 请求。这在 IE 中工作正常,但在 Firefox 中不起作用。当我在 httpfox 中调试 http 请求时,它抛出了“NS_BINDING_ABORTED”错误,我认为这意味着请求因页面卸载而被取消。

请注意,如果我使用警告框,请求将在两个选项中发送。但我不能使用警报框。还有其他方法吗?或者在超时后关闭警告框?

最佳答案

告诉服务器它正在断开连接不应该是客户端的责任。您可以让客户端定期 ping 服务器以告诉它它仍然存在,或者您可以打开一个永无止境的 http 请求( cometd 式),并在 tcp 连接断开时触发事件。

在 PHP 中它看起来像这样:(未测试)

<?php
// Run script until aborted.
ignore_user_abort(true);
set_time_limit(0);
while(connection_status() == CONNECTION_NORMAL) {
sleep(1);
}

// The connection was lost, so do something.
onLostConnection();
?>

关于javascript - 在 "onbeforeunload"事件上将客户端状态更新到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com