将ajax请求限制在单个页面上
Limit ajax requests to a single page
我为我的用户建立了一个web管理页面,这个页面包含每4秒调用一次的ajax来显示实时信息。我的问题是,我的一些用户在不同的标签上多次打开这个页面而没有注意到,这会导致对我的php服务的请求过多,是否有一种方法可以设置它,以便一旦页面重新打开,它将阻止旧页面发送请求?
谢谢,Rami .
在IE10及以上版本的现代浏览器中,您可以使用可见性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);
}
您可以将cookie写入用户机器,并在上次收到用户请求时在服务器上检查。
相关文章:
- 使用ajax的服务器端分页&jQuery
- 分页:如何用AJAX加载第一个页面
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 如何在ajax请求中将多组数据作为单个变量发布
- 使用php、ajax、javascript对页面上的flash文件进行随机排序
- ajax在成功发布表单和更改页面上
- 有没有办法对单个页面上的多个项目使用相同的jQuery Ajax
- CodeIgniter - AJAX 生成的元素内的 AJAX 分页
- 分页-标准php或不使用ajax重新加载页面
- 我需要从jsp页面向struts操作类进行ajax调用,以获得一些数据,如名称搜索
- 处理来自同一页面上ajax驱动的Fancybox元素的PHP请求
- 在具有相同类的单个页面上,在jquery中创建多个next和previous按钮
- 以 php 为单位进行分页.AJAX,PHP,MYSQL
- 多个网页的单个页眉
- 将ajax请求限制在单个页面上
- 分页AJAX,需要包括js所有的时间
- 如何将Drupal用户数据库中的UUID导出到单个页面上的javascript中
- 分页Ajax在Rails中工作不一致
- Chrome扩展不能修改单个页面的dom
- 单页AJAX爬行