2015-09-28 85 views
0

我正在使用ASP創建一個網站。 NET與大型客戶端,負責該網站的許多事件。在客戶端通過AJAX更新,刪除並添加到數據庫(按此順序!)。 我的問題是,因爲任務的順序是非常重要的:第一次更新數據庫,第二次從數據庫中刪除,第三次添加到數據庫: 我應該讓AJAX調用同步嗎?通過改變「async」爲false「? 或者我應該將它保留爲默認值?我應該採用哪種方法?jquery ajax調用同步數據庫

+1

不,請保持原樣,並且在第一次完成前不要發送第二個請求。切勿使用同步ajax,除非您在點擊或提交事件期間嘗試執行某些操作,這會導致頁面重新加載。 –

+1

如果您必須按特定順序進行3次特定數據庫更新,則應該在事務中執行全部3次更新。 –

回答

0

U應該通過發送一個ajax調用來完成所需的所有操作, Ajax調用異步錯誤。

0

在這種情況下,它會更好,而不是使用async: true和鏈您的需求,讓他們在其他以後發生的。

$.ajax({ 
    type:'put', 
    url: '/model/7256185', 
    data: {name: 'Lucy'} 
}).then(function() { 
    return $.ajax({ 
     type:'delete', 
     url: '/model/7256186' 
    }); 
}).then(function() { 
    return $.post('/model', {name: 'bob'}); 
}).then(function (result) { 
    console.log("All Done!"); 
    console.log(result); 
}, function() { 
    console.log('An error has occurred!'); 
    console.log(arguments); 
}); 

這確保了請求,以便發生,它不會導致您的頁面在請求期間出現中斷(這是同步請求發生的情況)

它也允許你使用加載gif,如果你願意。通過同步請求,加載gif不會旋轉。

0

您肯定需要在後端的業務或數據層使用事務。

我通常更喜歡執行簡短任務(每個實體都有自己的存儲庫)並在數據層中儘可能少地保持連接打開,然後使用 - 例如TransactionScope類來管理業務層中的事務邏輯。

在此之後,以同步或異步方式調用服務/方法並不重要。