Javascript JS错误:[弃用]主线程上的同步XMLHttpRequest已弃用,因为它会对最终用户产生有害影响';经验

Javascript JS错误:[弃用]主线程上的同步XMLHttpRequest已弃用,因为它会对最终用户产生有害影响';经验,javascript,jquery,Javascript,Jquery,当我第二次单击按钮时,它会显示以下警告:- 主线程上的VM751 jquery-3.5.0.js:9987[弃用]同步XMLHttpRequest已弃用,因为它会对最终用户的体验产生有害影响。如需更多帮助,请查看 这是代码:- var add_title_content = $(".add-title-content"); var mobile_section = $("#mobile-other-section"); $.fn.add_title_se

当我第二次单击按钮时,它会显示以下警告:-

主线程上的VM751 jquery-3.5.0.js:9987[弃用]同步XMLHttpRequest已弃用,因为它会对最终用户的体验产生有害影响。如需更多帮助,请查看

这是代码:-


var add_title_content = $(".add-title-content");
var mobile_section = $("#mobile-other-section");
$.fn.add_title_section = function () {
        // For desktop
        var first = $("#first-column");
        var second = $("#second-column");
        var third = $("#third-column");
        second.html("");
        second.show();
        add_title_content.show();
        second.append(add_title_content);
        first.removeClass();
        first.addClass("col-md-12 col-lg-4 round-content");
        third.removeClass();
        third.addClass("col-md-12 col-lg-4 round-content");
        
        $('.value-truncate').removeClass("truncated");
        $('.value-truncate').addClass("truncated-mobile");

        //For mobile
        var home_section = $(".mobile-home");
        home_section.hide();
        home_section.removeClass("hide-section");
        mobile_section.html("");
        mobile_section.append(add_title_content.clone(true));
        mobile_section.show();
        add_title_content.show();
    } 

     
    $(document).on("click", ".btn-add", function (e) {
        $.fn.add_title_section();
        e.stopImmediatePropagation();
    });

同步请求阻塞线程。如果在主线程上运行它,并且请求需要很长时间,那么整个浏览器选项卡将冻结。因此,它被弃用


最好的解决方案是使请求异步(这是默认设置)。另一种选择是使用更难的方法打开工作线程。

它看起来像是
add\u title\u content
包含一个内联脚本,可以进行同步AJAX调用。您必须更改异步调用。当该脚本被插入到DOM中时,它将成为“主线程”的一部分,尽管错误发生在单击按钮时。相关:@freedomn-m一个很好的捕获,它是jQuery在读取脚本时发出AJAX调用的,该错误不是由于OP在
添加标题内容
中的代码引起的(除了它添加了带有
src
的脚本)@JasmeetPabla因为这似乎是jQuery的问题,我不能说太多。一种方法是从
add\u title\u content
中删除脚本标记,并将脚本包含到原始标记中。这可能需要对这些脚本进行一些更改,但这取决于它们在页面上执行的操作。另一种方法是动态添加脚本标记,但在不知道代码的情况下,所有修复都只是猜测。您可以编辑您的帖子,并添加
add\u title\u content
字符串。第一次在
add\u title\u content
中可能没有脚本标记。从字符串创建HTML总是容易出错的,真正的动态元素创建也可能解决这个问题。Rani Sharmin我应该用代码做什么,你能告诉我吗?不能不看你的其余代码。

var add_title_content = $(".add-title-content");
var mobile_section = $("#mobile-other-section");
$.fn.add_title_section = function () {
        // For desktop
        var first = $("#first-column");
        var second = $("#second-column");
        var third = $("#third-column");
        second.html("");
        second.show();
        add_title_content.show();
        second.append(add_title_content);
        first.removeClass();
        first.addClass("col-md-12 col-lg-4 round-content");
        third.removeClass();
        third.addClass("col-md-12 col-lg-4 round-content");
        
        $('.value-truncate').removeClass("truncated");
        $('.value-truncate').addClass("truncated-mobile");

        //For mobile
        var home_section = $(".mobile-home");
        home_section.hide();
        home_section.removeClass("hide-section");
        mobile_section.html("");
        mobile_section.append(add_title_content.clone(true));
        mobile_section.show();
        add_title_content.show();
    } 

     
    $(document).on("click", ".btn-add", function (e) {
        $.fn.add_title_section();
        e.stopImmediatePropagation();
    });