如何实现 zepto的ajax 前置过滤器。
想将ajaxPrefilter 移植到zepto上面。
var pendingRequests = {}; //全局的requests列表。
/**
callback():
@param {[Object]} options对象
包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项
@param {[Object]} originalOptions对象
就是你为$.ajax()方法传递的参数对象,也就是 例如: { url: "/index.php" }
@param {[Object]} jqXHR对象
就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法)
*/
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
key = options.url;
if(!pendingRequests[key]) {pendingRequests[key] = jqXHR;
}
else{
jqXHR.abort(); // 放弃后触发的重复提交
//pendingRequests[key].abort(); // 放弃先触发的提交
}complete = options.complete;//暂存options的complete方法指针
options.complete = function(jqXHR, textStatus) {//重写complete方法 pendingRequests[key] = null; if ($.isFunction(complete)) { complete.apply(this, arguments);//在options下执行。 }
};
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过调研,自己完成了一套解决方案。
地址在:http://www.byr.pub/wordpress/2015/11/27/%E5%85%A8%E5%B1%80%E9%98%B2%E6%AD%A2%E9%87%8D%E5%A4%8Dajax%E8%AF%B7%E6%B1%82/
<script>
</script>