jquery load正在触发主线程上的同步XMLHttpRequest被弃用警告

时间:2017-03-28 15:12:03

标签: javascript jquery ajax

$('#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只是遍历数组并调用此函数:

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

这会导致jquery进行同步调用,如this中所解释的那么回答吗?如果不是,如何在加载html / server响应后重新运行我需要运行的一组函数?

编辑: 这是reloadScripts的代码:

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

1 个答案:

答案 0 :(得分:0)

我删除了reload_js中的jquery代码并将其更改为以下内容:

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中的一个错误。这样做之后,警告就消失了。