2013-03-07 25 views
0

我有功能需要在使用瀏覽器的「X」按鈕關閉瀏覽器之前進行ajax調用以更新數據庫值。我用下面的代碼在相關文件的標題:在onbeforeunload事件中不工作的Ajax調用

$(document).ready(function() { 
    window.onbeforeunload = function(){ 
     $.ajax('<?php echo base_url();?>index.php/ajax/myfunction?a=4'); 
    } 
}); 

在關閉功能工作,但Ajax調用不執行瀏覽器..

有什麼解決辦法?

+1

你一個項目必須進行同步呼叫而不是異步呼叫。不幸的是,在最新版本的jQuery中''async'已棄用 – asprin 2013-03-07 12:23:01

+0

@asprin - 請你提供一個參考,我沒有在1.9或1.9.1發行說明中看到那個 – 2013-03-07 12:52:51

+1

有你去http://api.jquery。 com/jQuery.ajax/Head到'async(默認:true)'部分。它用粗體字 – asprin 2013-03-07 16:29:52

回答

2

也許不是最漂亮的代碼,但產卵超時工作線程以及跨瀏覽器的AJAX調用我的經驗

$(window).bind("beforeunload", function (e) { 
    setTimeout(function(){ 
     $.ajax({ 
      type: 'GET', 
      async: false, 
      url: "[YOUR API CALL]" 
     }); 
    }, 0); 
}); 

注意我最後一次使用,這是在使用jQuery 1.7