【问题标题】:Injecting JavaScript via AJAX warning message通过 AJAX 警告消息注入 JavaScript
【发布时间】:2016-07-09 03:39:17
【问题描述】:

我有一个 AJAX 将转到 div#container,如下所示

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

但我一直在控制台上收到此警告:

主线程上的同步 XMLHttpRequest 已被弃用,因为 其对最终用户体验的不利影响。如需更多帮助, 检查https://xhr.spec.whatwg.org/

代码仍然可以正常工作,但我应该担心这个吗?重写上面的代码以删除警告的最佳方法是什么?

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    <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 是文档。

    【讨论】:

      猜你喜欢
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多