2016-07-09 46 views
1

我有如下圖所示通過AJAX警告信息注入的JavaScript

var loc={}; 
loc.script = document.createElement('script'); 
loc.script.type = 'text/javascript'; 
loc.script.src = "highcharts.js"; 
$("#container").prepend(loc.script); 

說是要一個div#容器的AJAX但我不斷收到控制檯上的警告:

同步的XMLHttpRequest上由於 對最終用戶的體驗有不利影響,主線程已被棄用。如需更多幫助,請撥打 查詢https://xhr.spec.whatwg.org/

該代碼仍然工作,並按預期的功能,但我應該擔心這一點?重新編寫上述代碼以刪除警告的最佳方法是什麼?

回答

0

<script>標籤同步加載內容。當您使用外部引用創建<script>元素時,主線程會等待,直到它返回。

處理此問題的最佳方法是手動加載腳本並將其注入JS命名空間。 jquery getScript功能也一樣。它通過ajax獲取腳本,評估腳本並將其添加到名稱空間。因爲腳本不是視覺元素,所以腳本在DOM樹中的位置並不重要。

$.getScript("highcharts.js") 
    .done(function(script, textStatus) { 
    console.log(textStatus); 
    }) 
    .fail(function(jqxhr, settings, exception) { 
    $("div.log").text("Triggered ajaxError handler."); 
}); 

Here是文檔。