【发布时间】:2015-04-06 05:28:37
【问题描述】:
我在我的项目中使用了一个第三方库来发送一些 ajax 请求。这是一个非常复杂的库,它将它们发送到具有随机 GUID 的 url,所以我无法预测 GUID 是什么,因此无法预测确切的 url 是什么。
我希望能够处理它发送的 ajax 请求的开始和结束,这样我就可以显示一个 ajax 微调器或其他东西 - 通知用户正在发生一些事情。特别是当页面第一次加载时。
我试过这个,即使它已经完成但它没有工作:
$(document).ajaxStop(function () {
alert('done');
});
document.ready 也没有按我需要的方式工作,因为 ajax 请求的响应在它之后返回。
同样,我不会发送那些 ajax 请求,而是由库发送它们。 为简单起见,我们可以假设只有一个 ajax 请求,而不是很多。而且我无法更改库的源代码。
有什么办法吗?
更新:
没有使用 jquery。它通过
动态创建脚本 var s = document.createElement('script');
s.src = url;
s.async = true;
s.onreadystatechange = s.onload = function(){
//.... some stuff
【问题讨论】:
-
你用的是什么库?
-
@DGS,网上没有的图书馆。
-
@AlexanderSupertramp 如果它调用 ajax 然后检查这个 jquery 函数api.jquery.com/ajaxComplete
-
我很确定全局 ajax 事件处理程序仅在使用 jQuery 进行事件时才有效。如果库不使用 jQuery,它可能不会注册事件
-
Global Ajax Event Handlers 可能适合您的需求。没有本地全局事件可以挂钩所有 XHR 请求。您可以尝试填充原型,但这可能不适用于某些浏览器,这取决于它们如何实现本机对象。我在看着你,IE。如果您确实尝试填充原型,则必须先在文档上执行该操作,然后再将有问题的库添加到页面中。
标签: javascript jquery ajax