Javascript 连续AJAX调用块页面,Firefox
这是我第一次面对这个问题。我已经多次使用AJAX 我正在调用AJAX来更新页面内容。AJAX调用在每2秒之后进行。对于一些点击,它工作正常,但之后我在FIREFOX浏览器上收到以下警告 这只发生在FIREFOX上,我不会在杂务浏览器上收到这样的警告 我的代码是:Javascript 连续AJAX调用块页面,Firefox,javascript,jquery,html,ajax,firefox,Javascript,Jquery,Html,Ajax,Firefox,这是我第一次面对这个问题。我已经多次使用AJAX 我正在调用AJAX来更新页面内容。AJAX调用在每2秒之后进行。对于一些点击,它工作正常,但之后我在FIREFOX浏览器上收到以下警告 这只发生在FIREFOX上,我不会在杂务浏览器上收到这样的警告 我的代码是: function search_by_location (location_id) { console.log(location_id); setInterval(function(){ $.
function search_by_location (location_id) {
console.log(location_id);
setInterval(function(){
$.ajax({
type:"POST",
url: "<?php echo BASE_URL.'controller/function'?>",
data:{"key":location_id},
cache:false,
success:function(data){
$("#custom_div").html("");
$("#custom_div").html(data);
search_by_location (location_id);
},
error:function(err){
console.log(err);
}
});
}, 2000);
}
函数按位置搜索(位置id){
控制台日志(位置\标识);
setInterval(函数(){
$.ajax({
类型:“POST”,
url:“”,
数据:{“key”:location_id},
cache:false,
成功:功能(数据){
$(“#custom_div”).html(“”);
$(“#custom_div”).html(数据);
按位置搜索(位置id);
},
错误:函数(err){
控制台日志(err);
}
});
}, 2000);
}
问题是什么?我认为这是因为多次点击和页面更新。它与缓存相关吗?问题在于,您每2秒发出一次AJAX请求,但每次请求完成时都会启动一个新计时器。因此,您发出的请求数量呈指数级增长。您应该删除
success
处理程序中的search\u by_location()
调用:
function search_by_location (location_id) {
setInterval(function() {
$.ajax({
type: "POST",
url: "<?php echo BASE_URL.'controller/function'?>",
data: { key: location_id },
cache: false,
success: function(data){
$("#custom_div").html(data);
},
error: function(err){
console.log(err);
}
});
}, 2000);
}
如果您要求客户端始终能够立即访问最新数据,那么您可能还希望使用WebSocket。如果您不小心,轮询模式可能会导致DDoS攻击您自己的服务器。我认为这是因为setinterval。因为我认为每2000个时间段都会执行相同的代码。
function search_by_location (location_id) {
$.ajax({
type: "POST",
url: "<?php echo BASE_URL.'controller/function'?>",
data: { key: location_id },
cache: false,
success: function(data){
$("#custom_div").html(data);
},
error: function(err){
console.log(err);
},
complete: function() {
setTimeout(function() {
search_by_location(location_id);
}, 2000);
}
});
}