是否保证在任何DOM更新后运行ajaxComplete()?

时间:2015-06-15 15:46:24

标签: jquery ajax race-condition dom-manipulation

JQuery的ajaxComplete()让我在AJAX请求完成后运行自己的Javascript。

但是,在ajaxComplete()处理程序中操作DOM元素时,我有时会观察到奇怪的问题,看起来像AJAX请求导致的DOM更改不完整。 换句话说,看起来AJAX请求和ajaxComplete()处理程序在DOM更新之间存在竞争条件。

不幸的是,我在JQuery文档中找不到任何明确的内容。因此我的问题是:

AJAX请求和处理程序之间是否存在竞争条件?或者JQuery是否保证只有在完成AJAX请求的所有DOM更新后才会运行ajaxComplete()处理程序?

例如,在此forum thread有人声称:

  

关于执行顺序。 PrimeFaces中的执行顺序是

     

1)onsuccess / onerror回调2)DOM更新3)oncomplete回调

     

完成是在请求完成后要调用的函数   成功和错误回调已执行并且DOM已更新。但   请记住,DOM更新可能需要一些时间而不能完成   的onComplete

这似乎表明oncomplete回调(使用JQuery的ajaxComplete()实现)将与DOM更新同时运行。或者这是一种误解?

0 个答案:

没有答案