有沒有辦法監聽javascript函數退出?一個函數完成後可以設置的觸發器?Javascript:在函數退出時觸發動作
我試圖使用用戶界面模糊處理技術(BlockUI),而AJAX對象正在從數據庫中檢索數據,但該函數並不一定最後執行,即使您將它放在函數調用的末尾。
例子:
function doStuff() {
blockUI();
ajaxCall();
unblockUI();
};
有沒有辦法爲doStuff監聽AjaxCall的完成,在發射前unBlockUI?實際上,它按線性處理函數,按順序調用每個對象,然後生成一個單獨的線程以完成每個對象。所以,儘管我的AJAX調用可能需要10-15秒才能完成,但由於函數的線性執行,我僅僅阻止了用戶一秒鐘。
還有一些不太好用的方法......只有當AJAX函數設置的返回值設置爲true時,纔會結束循環,或者具有某種特性。但這似乎不必要的複雜和低效率。
這種方法的缺點是它會鎖定所有JavaScript活動,直到XHR完成。 – 2008-09-25 17:54:42