我有一個小的JavaScript函數,它的唯一目的是調用腳本從數據庫獲取一些數據,以便客戶端的其他函數可以使用它。什麼是使用jQuery進行同步ajax調用的不被棄用的方式?
我正在使用jQuery調用來獲取數據,但對於我將對象從成功函數作用域中傳遞出去,我需要關閉異步關閉,這將引發一個棄用警告。
我的函數按預期工作,但我想使用一個不被棄用的方法。這裏是我的功能:
function getData(ID) {
var Data = {};
$.ajax({
url: 'script',
method: 'POST',
dataType: 'json',
async: false,
data: {action: 'get', id: ID },
success: function(response) {
Data = response;
})
});
return Data;
}
我已經更改了變量名稱的隱私原因,所以道歉,如果他們是模糊的。
此外,爲什麼同步呼叫被認爲對最終用戶體驗有害?
@Keatinge你爲什麼這麼說?它目前每次都按照預期返回對象。 – Fashim
@Keatinge我認爲它會工作,因爲'async:false'選項已被傳遞到'$ .ajax()' –
您可能想看看[如何從異步調用返回響應? ](https://stackoverflow.com/q/14220321/218196)。在那裏,我還談到了同步調用:*「爲什麼它不好?你的JavaScript運行在瀏覽器的UI線程中,任何長時間運行的進程都會鎖定用戶界面,使它不響應。另外,還有一個上限JavaScript和瀏覽器的執行時間將詢問用戶是否繼續執行。「* –