我有一个在onChange事件中调用的代码
function group_changed(obj)
{
$.ajaxSetup({async:false});
$.post("/medilab/personnel/groups/getGroupRightsAjax",
{ 'group.id': obj.options[obj.selectedIndex].value },
function(data){
$("#div_rights").html(data);
}
);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我设置async:true有时结果与选择不匹配...我想这是发生的,因为一些请求丢失或响应没有按顺序.
知道如何保持异步吗?
有一些jQuery插件支持排队和排序ajax请求.John Resig写了Ajax Queue.从插件描述:
Ajax Queue是一个有助于管理Ajax竞争条件的插件.当快速连续发出多个Ajax请求时,结果可能无序返回.这可能会导致您的应用程序出现奇怪的行为.
这听起来可能就是你需要的东西,也应该有几个不同的插件可以完成相同的事情(保持订单的ajax请求). Ajax Manager看起来更新.浏览一些插件,您可能会发现已经完成了您想要完成的任务,节省您的时间.