Javascript 等到gobalEval完成
我需要在以下操作完成后执行回调:Javascript 等到gobalEval完成,javascript,jquery,Javascript,Jquery,我需要在以下操作完成后执行回调: jQuery.globalEval(myUnknownContent); 但是,myUnknownContent中可能有一些Ajax调用。到目前为止,我使用的是100毫秒的超时,但这不是一个优雅可靠的解决方案 谢谢你的帮助 为此,您可以使用和: var onCompletion = function(){ // put here the stuff you want done after all unknown content } var ajaxSe
jQuery.globalEval(myUnknownContent);
但是,myUnknownContent
中可能有一些Ajax调用。到目前为止,我使用的是100毫秒的超时,但这不是一个优雅可靠的解决方案
谢谢你的帮助 为此,您可以使用和:
var onCompletion = function(){
// put here the stuff you want done after all unknown content
}
var ajaxSent = false;
jQuery(document).ajaxSend(function(){ ajaxSent = true });
jQuery.globalEval(myUnknownContent);
if (ajaxSent) {
jQuery(document).ajaxStop(onCompletion);
} else {
onCompletion(); // use setTimeout(onCompletion,0) if you want it asynchronous
}
OP注意:如上所述,如果没有ajax调用,
onCompletion
将同步调用,如果有ajax调用,则异步调用。@T.J.Crowder您认为这可能是个问题吗?完全取决于OP的用例。如果它是一个通用函数(比如promise的然后),我肯定会说它是,因为它会导致一个混乱的结果(事实上,这是jQuery的promises内容的缺陷之一;幸运的是,ES6在这方面做得很好)。但如果它不是一个通用函数,而只是在一个地方编写代码,那么它就不重要了。@Girish它会等待所有挂起的ajax请求完成