javascript - ajax请求不能在主线程...这什么意思(Synchronous XMLHttpRequest on ...)
PHPz
PHPz 2017-04-10 14:47:54
0
4
528

在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)
PHPzhong

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

いいねを押す +0
PHPzhong

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

いいねを押す +0
小葫芦

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

いいねを押す +0
迷茫

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート