gpt4 book ai didi

javascript - SuperAgent相当于Jquery的ajaxStart ajaxStop

转载 作者:行者123 更新时间:2023-12-02 15:32:13 28 4
gpt4 key购买 nike

我的团队目前正在尝试摆脱我们的 jQuery。我们已经设法摆脱了所有选择器,并且正在将其从 ajax 调用中重构,但我们正在尝试重新创建 ajaxStart 和 ajaxStop 函数。

我一直在浏览 SuperAgent 文档,但找不到任何与此等效的内容。有谁知道 SuperAgent 中有类似的东西,或者知道如何使用事件监听器或其他东西重新创建它?

我的替代方案是直接向每个请求添加显示更改,这是我想避免的 200 行左右。

window.onload = function() {
$(document)
.ajaxStart(function(){
document.getElementById('ajaxSpinner').style.display = 'block';
})
.ajaxStop(function(){
document.getElementById('ajaxSpinner').style.display = 'none';
});
}

编辑:我们已经弄清楚如何在我们的代码库中使用已接受的答案。我们已将所选答案中的代码移至其自己的模块中,无论我们在何处使用 SuperAgent,都需要该模块。现在,我们的每个调用都包含 .use(Module.stats)。到目前为止,这个解决方案似乎有效,但我们尚未开始跨浏览器测试。感谢您的帮助!

Edit2:偶然需要我们重建应用程序。接受的答案不适用于最新版本的 SuperAgent,我们不得不将其回滚到版本 1.7.2。

最佳答案

https://github.com/visionmedia/superagent/issues/861#issuecomment-173413292

希望上面的链接对您有帮助

报价代码:

function stats(req) {
req.once('request', function() {
// ajaxstart
req._startedAt = Date.now();
});
req.once('error', function() {
// an error,the request fail
});
req.once('end', function() {
// ajaxstop
var use = Date.now() - req._startedAt;
});
}

function get(url) {
return request.get(url)
.use(stats);
}

Request.prototype._end = Request.prototype.end;
Request.prototype.end = function(fn) {
this.emit('request');
this._end(fn);
}

关于javascript - SuperAgent相当于Jquery的ajaxStart ajaxStop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33219794/

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