我的页面上有一个按钮
<input type="button" onclick="someFunction()" value="submit"/>
现在当用户点击按钮时,js函数someFunction()执行。在此函数中,请求通过jquery $ .ajax方法发送到服务器...
如果用户反复点击按钮,我需要知道发生了什么。
是否jquery维护请求的que或中止上一个请求并启动新请求..
如果jquery维护que,那么如何停止/中止它们。
任何帮助都会非常受欢迎。
答案 0 :(得分:2)
是的,$ajax
在每次点击(事件火灾)时发出新请求,
不会有任何请求被停止/中止。
建议:在第一次点击时禁用,并在响应后启用它。
答案 1 :(得分:0)
您可以将Ajax请求存储在变量中:
var request = $.ajax({
type: 'POST',
url: 'someurl',
success: function(result){}
});
然后你可以中止请求:
request.abort();
如果单击该按钮,则只需检查是否设置了request
以确保一次只能进行1次ajax呼叫。
答案 2 :(得分:0)
function someFunction() {
if (this.ajaxPending) return;
this.ajaxPending = true;
$.ajax(...).always(function () {
this.ajaxPending = false;
});
}
答案 3 :(得分:0)
您的代码必须如下:
$(document).ready(function(){
js_Codes();
/* The rest of your code that will not reload after ajax request */
});
$(document).ajaxComplete(function(){
/* Here we call the codes that will reload after your ajax request */
js_Codes();
});
function js_Codes(){
function clickOpenDialog(){
$('.btOpenDialog').off('click',clickOpenDialog);
fn_open_Dialog_Click($(this).prop('alt'), function(){$('.btOpenDialog').on('click',clickOpenDialog);});
return false;
};
function fn_Open_Dialog_Click(myString){
var myArray = myString.split(';');
/* whatever u want with your page with a string param array */
};
$('.btOpenDialog').on('click',clickOpenDialog);
}
)