当我在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
设置对开发来说很糟糕?
答案 0 :(得分:1)
我会说是的。离开async = true
。
正如警告所说,由于可能会出现糟糕的用户体验,因此在主线程上运行它并不是一个好主意。当浏览器冻结时,大多数用户不喜欢它。当您的服务器出现故障或运行缓慢时,您尤其不希望您的站点冻结,因为您将获得糟糕的用户体验。
异步运行请求只是一种更好,更易于管理的解决方案。