2017-03-28 9 views
-1
$('#in-view-contents').load("/browse/".concat(selectedId), function(responseData){ 
    var contentsLabelEl = document.getElementById("refined-contents-container"); 
    contentsLabelEl.style.display = "block"; 
    var arrayOfReloadScripts = ["/js/rateable.js", "/js/siteWide.js", "/js/search/searchEvents.js"]; 
    reloadScripts(arrayOfReloadScripts); 
}); 

とreloadScriptsだけ繰り返し処理を非推奨となり、この関数を呼び出している:jqueryの負荷がメインスレッド上で同期のXMLHttpRequestをトリガされ、アレイかかわらず、警告

function reload_js(src) { 
    $('script[src="' + src + '"]').remove(); 
    $('<script>').attr('src', src).appendTo('head'); 
} 

はで説明したように、同期呼び出しを行うために、この原因jqueryのをいthisそれは答えですか? html/serverレスポンスがロードされた後に実行する必要がある関数のセットを再実行するにはどうしたらいいですか? EDIT

var reloadScripts = function(array){ 
    var len = array.length; 
    for (var i = 0; i < len; i++){ 
     reload_js(array[i]); 
    } 
} 
+0

私たちはあなたを助けるために 'reloadScripts()'のロジックを見る必要があります。おそらくあなたはそこに 'async:false'を設定していますが、これが問題です。 –

+1

いいえ、.loadを使用してもこの警告は発生しません。私は、この警告を引き起こすためにページにスクリプトを追加することを期待していません。 –

+0

@RoryMcCrossan reloadScripts()のコードを追加しました。私は少なくとも私が知っているものではない場所に、非同期プロパティを設定したことはありません。 – user3494047

答えて

0

私はreload_jsでjqueryのコードを削除し、以下にそれを変更:ここで はreloadScriptsのためのコードである私が原因のコメントでこれをやった

function reload_js(src) { 
    var originalScript = document.querySelector('script[src="' + src + '"]'); 
    var parentEl = originalScript.parentNode; 
    parentEl.removeChild(originalScript); 
    // $('script[src="' + src + '"]').remove(); 
    var newScript = document.createElement('script'); 
    newScript.src = src; 
    parentEl.appendChild(newScript); 
    // $('<script>').attr('src', src).appendTo('head'); 
} 

それこれはjqueryのバグかもしれないと言われました。この後、警告は消え去った。

関連する問題