首页 > ajax请求不能在主线程...这什么意思(Synchronous XMLHttpRequest on ...)

ajax请求不能在主线程...这什么意思(Synchronous XMLHttpRequest on ...)

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


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


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


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


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

【热门文章】
【热门文章】