当我在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文档在异步类别下显示以下内容。

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之前添加了以下代码,该错误似乎消失了。

使用的代码:

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


我的问题:可以这样做吗(CodeUsed),还是必须根据less.org文档使用完整的代码(CodeGiven)?问的原因是因为我读到设置async = true对于开发很糟糕?

最佳答案

我会说是的。离开async = true

如警告所述,在主线程上运行它不是一个好主意,因为它可能会带来不良的用户体验。当浏览器死机时,大多数用户都不喜欢它。当服务器出现故障或运行缓慢时,您尤其不希望站点冻结,因为这会带来糟糕的用户体验。

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

关于css - 主线程上的同步XMLHttpRequest由于其不利影响而被弃用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29687293/

10-15 19:33