1
我需要以下完成后执行的回调:等待,直到gobalEval完成
jQuery.globalEval(myUnknownContent);
但是,myUnknownContent
可能有一些阿贾克斯调用。到目前为止,我使用了100ms的超时,但这不是一个优雅可靠的解决方案。
谢谢你的帮助!
我需要以下完成后执行的回调:等待,直到gobalEval完成
jQuery.globalEval(myUnknownContent);
但是,myUnknownContent
可能有一些阿贾克斯调用。到目前为止,我使用了100ms的超时,但这不是一个优雅可靠的解决方案。
谢谢你的帮助!
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:根据上面的'onCompletion'将同步如果,如果有没有Ajax调用,异步调用。 –
@ T.J.Crowder你认为这可能是一个问题? –
完全取决于OP的用例。如果它将成为一个* general *函数(比如承诺的'then'),我会说这肯定是因为它导致了混乱的结果(事实上,这是jQuery的承诺东西的缺陷之一幸运的是,ES6在这方面正确)。但是,如果它不是一个通用函数,而只是代码在一个地方执行这个操作,那么它就无关紧要了。 –