Javascript firefox中的API调用执行顺序不同

Javascript firefox中的API调用执行顺序不同,javascript,jquery,Javascript,Jquery,我有一个要求,我可以从复选框中选择项目并单击更新。单击“更新”后,我将调用$.ajax()来更新所选实体。在成功中:我调用另一个函数,比如函数A()。其中有两个$.getJSON(),用于填充更新的项目网格。在填充网格之前,我将清除(杀死)网格,然后添加选中复选框的更新项目 $.ajax()是异步的,$.getJSON()是同步的 我在Chrome和IE中获得了所需的输出,但在firefox中,当我选择多个框并单击“更新”时,我获得了重复的实体。这是因为,当我选择两个项目时,它将终止网格,然后将

我有一个要求,我可以从复选框中选择项目并单击更新。单击“更新”后,我将调用$.ajax()来更新所选实体。在成功中:我调用另一个函数,比如函数A()。其中有两个$.getJSON(),用于填充更新的项目网格。在填充网格之前,我将清除(杀死)网格,然后添加选中复选框的更新项目

$.ajax()是异步的,$.getJSON()是同步的

我在Chrome和IE中获得了所需的输出,但在firefox中,当我选择多个框并单击“更新”时,我获得了重复的实体。这是因为,当我选择两个项目时,它将终止网格,然后将所有更新的项目添加到网格中,在每个循环中迭代,然后再次终止并将更新的项目添加到网格中。FF中的执行顺序不同,因此存在问题。请告诉我如何处理这件事。恐怕我无法使$.getJSON异步。以下是控制台日志中显示的内容:

铬:

1.压井网 2.启动网格 3.启动第一个getJSON调用 4.完成第一个json调用 5.启动第二个getJSON调用 6.完成第二次json调用 7.将更新的数据附加到网格 1.压井网 2.启动网格 3.启动第一个getJSON调用 4.完成第一个json调用 5.启动第二个getJSON调用 6.完成第二次json调用 7.将更新的数据附加到网格

火狐:

1.压井网 2.启动网格 3.启动第一个getJSON调用 1.压井网 2.启动网格 3.启动第一个getJSON调用 4.完成第一个json调用 5.启动第二个getJSON调用 6.完成第二次json调用 7.将更新的数据附加到网格 4.完成第一个json调用 5.启动第二个getJSON调用 6.完成第二次json调用
7.将更新的数据添加到网格

“$.getJSON()是同步的。”除非您更改了getJSON在封面下的工作方式,否则这不是同步的。显示一个示例可能会有所帮助。如果您的代码假定异步操作的顺序,那么您的代码是不正确的。异步操作没有保证的完成顺序。