【发布时间】:2012-10-09 11:17:00
【问题描述】:
我正在尝试找出一个 ajax 调用...我需要调用来保持并完成加载 HTML 内容,然后再重新开始(它由 keyup 事件触发)...否则返回的 HTML 实际上是多次加载。在我的例子中,ajax 调用返回 HTML,然后执行一个 JS 函数。但是当它被多次加载时,JS函数被执行了两次=错误。
这是我的代码(警告框仅用于帮助...):
$(document).ready(function() {
var isProcessing = false;
$('#productSearchInput').keyup(function() {
var productSearchInput = $(this).val();
var dataString = 'searchInput='+ productSearchInput;
var script_url = '../ajax/service-search.php';
if(productSearchInput.length > 3 && isProcessing === false) {
$.ajax({
type: 'GET',
url: script_url,
data: dataString,
beforeSend:
function() {
isProcessing = true;
alert('Processing input: ' + productSearchInput;
},
success:
function(server_response) {
$('#searchresultdata').html(server_response).show('fast', function() { alert('Currently processing...'); } );
},
error:
function() {
alert('ajax call failed...');
},
complete:
function() {
isProcessing = false;
alert('Processing done');
}
});
}
return false;
});
});
问题是,“处理完成”警报出现在“等待处理”警报之前......然后在“处理完成”警报显示之后,“等待处理”警报显示。
在完成调用和设置 isProcessing = false;...
之前,我需要显示我的 HTML server_response我如何做到这一点?
【问题讨论】:
标签: javascript jquery ajax