有没有办法监听JavaScript函数退出?功能完成后可以设置触发器吗?
我正在尝试在AJAX对象从数据库中检索数据时使用用户界面混淆技术(BlockUI),但是该功能不一定要最后执行,即使您将其放在函数调用的末尾也是如此.
例:
function doStuff() {
blockUI();
ajaxCall();
unblockUI();
};
在触发unBlockUI之前,doStuff有没有办法监听ajaxCall?照原样,它以线性方式处理函数,依次调用每个对象,然后产生一个单独的线程来完成每个对象.因此,尽管我的AJAX调用可能需要10到15秒才能完成,但是由于该函数的线性执行,我只是在瞬间中断了用户.
解决这个问题的方法不太好…仅当AJAX函数设置的返回值设置为true或类似性质时,才使循环结束.但这似乎不必要地复杂且效率低下.
解决方法:
但是,如果您要完成Ajax例程,则需要一个“回调”函数,该函数将在完成后立即运行:
function ajaxCall(callback){
//do ajax stuff...
callback();
}
然后:
function doStuff(){
blockUI();
ajaxCall(unblockUI);
}