gpt4 book ai didi

javascript - 将 ajax 请求限制为单个页面

转载 作者:行者123 更新时间:2023-11-30 05:33:52 25 4
gpt4 key购买 nike

我有一个为用户构建的 Web 管理页面,此页面包含每 4 秒调用一次以显示实时信息的 ajax,我的问题是我的一些用户在不同的选项卡上多次打开此页面而没有注意到它,这会导致对我的 php 服务的请求过多,有什么方法可以设置它,以便在重新打开页面后停止旧页面发送请求吗?

谢谢,拉米。

最佳答案

在现代浏览器中,从 IE10 开始,您可以使用 Visibility API确定选项卡是否处于事件状态,并且只在事件选项卡中保持轮询,就像这样

var hidden, visibilityChange, timer;

if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}

function handleVisibilityChange() {
if (document[hidden]) {
stopAjax();
} else {
startAjax();
}
}

document.addEventListener(visibilityChange, handleVisibilityChange, false);

function startAjax() {
timer = setInterval(function() {
$.ajax(options);
}, 4000);
}

function stopAjax() {
clearInterval(timer);
}

关于javascript - 将 ajax 请求限制为单个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159916/

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