我正在为学校做一个项目,它是关于jQuery,PHP,symfony和所有网络的东西:)。这实际上是我第一次使用jQuery,即使我已经学到了一些东西,仍然有很多我不知道如何解决的问题。
在这个项目中,我应该做的一件事基本上是过滤一些结果。我有一个数据库,当加载网站时,数据库中的所有项目都显示在表格中。然后在表格上方,有一个文本字段。当我输入它时,表中的项目会在我键入时进行过滤。但有时,当我写例如"HP"时,jQuery 首先完成对"HP"的请求并显示结果,然后它完成了对"H"的请求,因此它会覆盖"HP"的结果,这不应该发生。如果我使请求同步,它会阻止我在处理请求时在文本字段中写入。如何使请求按调用顺序完成?
项目这部分的jQuery代码如下所示:
var oldTerm;
function filter() {
var term = $('#term').val();
//alert(term);
if(term != oldTerm) {
$.ajax({
url: url.replace('--', term).replace(/'/$/, '')
//musi bejt synchronni
}).done(function(data) {
$('#items_table tbody').html(data);
alert(term);
// udalost se musi registrovat po nacteni radku!
$('.edit_button').click(createForm);
});
oldTerm = term;
}
}
$(document).ready(function() {
oldTerm = null;
$('#term').keyup(filter);
});
我认为你最好的拍摄是为 ajax 调用排队,也许也可以使用锁。您还可以使用这个: 对 AJAX 调用进行排队