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在這方面正確)。但是,如果它不是一個通用函數,而只是代碼在一個地方執行這個操作,那麼它就無關緊要了。 –