sách gpt4 ai đã đi

Nhóm Ajax JQuery

In lại 作者:行者123 更新时间:2023-11-30 05:41:33 28 4
mua khóa gpt4 Nike

我正在开发一个单页应用程序,目前正在构建一个 JQuery、ajax 函数,以便我的所有调用都能通过。

对于一个典型的页面,我可能有 3 个 ajax 调用。我的想法是,如果用户互联网出去将这些 ajax 调用保存在一个数组中。然后做一个计时器并继续检查用户是否有互联网。一旦他们有了互联网,就可以打电话。因此,当用户离线时不会运行任何调用(除了检查互联网)并且一旦他们重新在线就可以做他们想做的事。所以在我的 beforeSend 中有这个。

beforeSend : function($xhr)
{
self.ajaxPool.push($xhr);

if(!self.validateConnection())
{
console.log(self.ajaxPool);
}
}

所以我的问题是,当我恢复连接并遍历我的数组到每个 $xhr 对象时,我可以调用什么函数来表示“嘿,做你现在应该做的事” ?例如$xhr.complete()?我已经在池上做了一个控制台日志,以在连接断开时查看对象,但它看起来没有一个功能可以解决问题。

1 Câu trả lời

我会完全放弃 beforeSend,因为无论如何你都在使用一个池并做这样的事情......

//where you want to make your initial request somewhere in code
//do this INSTEAD of calling $.ajax(options)
ajaxPool.push(options);

//an interval to handle the queue
setInterval(function(){
//nothing in the pool so do nothing
if(ajaxPool.length < 1) return;
//not online so don't try to send
if(!validateConnection()) return;
//hey we're online lets make the ajax request
doAjax(ajaxPool.shift());
},200);

function doAjax(options){
//add call backs since you seem to be using a single call back
options.complete=function(data){ ... };

//do call
$.ajax(options);
}

您可以使它更面向对象,并且可以在您知道它未被使用时暂停间隔,但我认为这已经理解了基本概念。

关于javascript - JQuery Ajax 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533167/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com