当我在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/