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更新同时运行。或者这是一种误解?