2017-06-11 35 views
4

我收到的錯誤在我的項目嘗試一個Ajax請求JS:棄用]同步XMLHttpRequest的主線程上的,因爲其所帶來的影響最終用戶的體驗

[棄用]同步的XMLHttpRequest棄用對主線程 已棄用,因爲它對最終用戶的經驗有不利影響。

function getReviews() { 
var toReturn = $.ajax({ 
    url: 'API/reviews.json', 
    async: false 
}).responseJSON; 
return toReturn; 
} 

我想知道是否有寫這個不有錯誤

+0

好吧......不要設置異步爲false。使用承諾或回調來處理回覆。 – Paul

+0

這不是一個錯誤,這是*警告*消息。但是,是的,這意味着什麼是說,不要使用'async:false'並重寫你的代碼來處理異步。 – Bergi

回答

2

同步的XMLHttpRequest不同的方式是非常糟糕的,因爲他們阻止整個應用程序,而它的等待響應服務器,所以你永遠不應該使用它們。

爲了讓您的請求的異步刪除async選項,並指定回調來代替:

function getReviews(cb) { 
 
    $.ajax({ 
 
     url: 'API/reviews.json' 
 
    }).done(cb); 
 
} 
 

 
getReviews(function(data) { 
 
    // Access your data here 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

而不是採取回調,更好地回報承諾。 – Bergi

+0

@KonstantinAzizov謝謝你!你可以請示例使用我的腳本現在是如何,所以我可以理解我有什麼修改請: [code](https://pastebin.com/NFTw59rJ) – Jakub

+0

@Jakub,這裏是一個[更新的代碼](https://pastebin.com/2mRfUKsY)。 –

相關問題