gpt4 book ai didi

javascript - 我可以让 SignalR 在设置窗口位置时不自行断开连接吗?

转载 作者:行者123 更新时间:2023-11-28 08:16:19 25 4
gpt4 key购买 nike

我正在编写一个简单的页面,用于监听 SignalR 事件,一旦检测到这些事件,就会对我们服务器上的 Web 服务执行 ajax 请求。

一旦 ajax 请求完成,就会返回一个带有自定义 URI 方案的 URL,一旦重定向到该方案,就会打开安装在客户端计算机上的自定义程序,而无需离开主页。这是通过在 ajax 请求的成功回调中调用 window.location = url; 来实现的。

此方法适用于我们网站的其他区域,我们正在使用此方法,通过向我们的程序发送命令而不影响主页,可以在回调中进行多个 ajax 请求和重定向。

我正在创建的新页面使用 SignalR 来决定何时发出这些相同的 ajax 请求,但它在第一次重定向时会自行断开连接。我在 javascript 控制台中发现以下消息,据我所知,在卸载页面时看到以下消息是很正常的,但在我的场景中,调用页面实际上从未被卸载: The connection to ... was Interrupted while页面正在加载。

我正在寻找一种方法来阻止 SignalR 在重定向时断开自身连接,因为这会导致进一步的重定向失败,直到 SignalR 重新建立连接。

最佳答案

当用户离开页面时,SignalR 会尝试正常停止任何正在进行的连接。 SignalR 通过使用 jQuery 绑定(bind)到窗口卸载事件来实现此目的。通常,这是使用 $(window).bind("unload",//... 完成的,但在 Firefox 中 $(window).bind("beforeunload",//.. . 也被使用。

假设您自己没有附加到这些事件中的任何一个,您可以通过使用 jQuery 取消绑定(bind)由 SignalR 绑定(bind)的 unload 和 beforeunload 事件处理程序来防止此行为:

$(window).unbind("unload");
$(window).unbind("beforeunload");

关于javascript - 我可以让 SignalR 在设置窗口位置时不自行断开连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23560929/

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