javascript - ajax请求不能在主线程...这什么意思(Synchronous XMLHttpRequest on ...)
PHPz
PHPz 2017-04-10 14:47:54
[JavaScript讨论组]

在chrome浏览器里面找到的,请原谅我这个新手,最近google崩了,baidu不给力,只好来社区了...

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/.

PHPz
PHPz

学习是最好的投资!

全部回复(4)
PHPz

这里面有2个概念。
一个是Ajax请求分异步和同步2种模式。如果请求是同步的,在请求返回之前线程会一直阻塞,如果请求是在主线程中发起的,那就会造成整个浏览器阻塞。
另外一个就是主线程。这段话应该是针对HTML5说的,因为在HTML5以前,JavaScript是完全的单线程方式,主线程之外不存在其他线程。但在HTML5中增加了Worker对象,每个Worker运行在一个独立的线程中,Worker线程被阻塞一般是不会影响主线程和浏览器的。因此,如果非要使用同步的Ajax(这种情况应该很少见),那就放到Worker线程中吧,千万千万不要放到主线程里。

PHPz

注意Synchronous,同步的ajax请求会造成整个页面阻塞,等待ajax请求返回,因此在主线程运行会导致用户体验问题(detrimental effects to the end user's experience)

高洛峰

@Terry_139061 如果我用异步的话,我不能及时的将json对象赋给全局变量啊,这要如何解决?

迷茫

可以在子线程里取值,再利用消息传递机制使用

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号