【发布时间】:2015-10-10 20:53:18
【问题描述】:
我已经知道同步请求和异步请求之间的区别,例如这里解释的: Synchronous and asynchronous requests
当您尝试进行同步 XMLHttpRequest(例如 firefox)时,您会收到这个著名的警告:
主线程上的同步 XMLHttpRequest 已被弃用,因为 对最终用户体验的不利影响
但是,我认为您可以以积极的方式使用同步方面,例如在页面加载期间,获取一些加载过程几乎不依赖的重要数据(没有这些数据可以'根本不显示)。在那里,用户必须等待请求是很自然的;它的行为就像请求的内容是调用文件的真实部分,它必须与文件的其余部分一样被读取。
less.js css 工具似乎就是这种情况:
它需要在任何显示之前解析.less 文件。 less 团队显然决定选择同步请求:我可以想象,如果使用异步请求,页面可以在更少的文件被解析之前显示,并且会显示一些原始内容很短的时间,没有定义任何样式。这不是预期的或方便的行为。所以同步请求似乎是一个更好的解决方案。
警告说:
因为它对最终用户的体验产生不利影响
很明显,确保请求尽可能快地运行是开发人员的责任,但在网站向其自己的服务器发送强制请求(发送到网站一部分的 php 文件)的情况下,或者在 less.js 的情况下,同步行为是想要的。
那么,为什么同步请求被视为已弃用,而它们似乎非常有用?
【问题讨论】:
-
您收到的错误消息中没有回答您的问题吗?你可能同意也可能不同意,但这仍然是原因......
-
@PeeHaa : 抱歉,没有 : 没有理由警告使用 有用 功能,请再次阅读我的帖子
-
@PeeHaa:你读过整个问题吗?
-
是的,我做到了。它列出了一些可能有用也可能没有用的功能的情况。并询问为什么它被弃用。答案在所述的错误消息中。
-
@PeeHaa :在某些情况下(如上所述),声明的内容是错误的,然后在控制台日志中没有位置
标签: javascript ajax xmlhttprequest less synchronous