主线程上的同步XMLHttpRequest由于其不利影响而被弃用

时间:2015-04-16 22:50:14

标签: css less saas

当我在chrome中运行较少(版本2.5)时会抛出错误:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

经过一些研究后我发现原因是因为默认async被设置为false。 less.org文档在Async类别下显示以下内容。

CodeGiven:

<script>
  less = {
    env: "development",
    logLevel: 2,
    async: false, //default is false
    fileAsync: false,
    poll: 1000,
    functions: {},
    dumpLineNumbers: "comments",
    relativeUrls: false,
    globalVars: {
      var1: '"string value"',
      var2: 'regular value'
    },
    rootpath: ":/a.com/"
  };
</script>

由于我的要求是将async设置为true,因此我在加载less.js之前添加了以下代码,错误似乎已经消失。

CodeUsed:

   <script>
     less = {
       async: true
     };
   </script>

我的问题:是否可以这样做(CodeUsed)或者我必须按照less.org文档使用完整代码(CodeGiven)吗?问的原因是因为我读到async = true设置对开发来说很糟糕?

1 个答案:

答案 0 :(得分:1)

我会说是的。离开async = true

正如警告所说,由于可能会出现糟糕的用户体验,因此在主线程上运行它并不是一个好主意。当浏览器冻结时,大多数用户不喜欢它。当您的服务器出现故障或运行缓慢时,您尤其不希望您的站点冻结,因为您将获得糟糕的用户体验。

异步运行请求只是一种更好,更易于管理的解决方案。