同步HTTP请求也很温柔
来源:互联网 发布:网络词表妹是什么意思 编辑:程序博客网 时间:2024/04/27 10:13
同步HTTP请求也很温柔 XHR对象发起HTTP同步请求时在干什么?“同步”是个很模糊的词汇,微软的很多程序对“同步”的实现都是直接使用线程消息劫持的方式,直接让线程挂起了。但是到了Web,所谓的“同步”就被像alert弹出的对话框那样给弱化了,他们不能再像从前那样暴力。 由于规范文档中很多地方只说明了结果,并没有规定实现方式,所以很多细节的地方都存在浏览器差异。就Web的线程这个问题,我现在都混乱了。虽然著名的how browsers work中这样描述:“渲染引擎是单线程的。除了网络通信外,几乎所有的工作都是在这个线程中做的。在Firefox和Safari中它是浏览器的主线程。在Chrome中它是标签页的主线程。”,但是由于这篇文章的年代太久远,我觉得它在某些方面已经无法诠释现代浏览器了。由于HTML5和CSS3的普及,很多东西都在发生质变。 下面我们把同步HTTP请求对线程的阻断性和JavaScript循环对线程的阻断性做个对比。这个是PHP代码,所以没法做在线运行版本了。
<?@sleep($_SERVER['QUERY_STRING']);?> 这是个有浏览器差异的结果。使用HTTP同步请求在Firefox和IE中无法阻止CSS3动画,只有Chrome中阻止了。而使用JavaScript循环来阻断对这三个浏览器都生效。目前的浏览器对线程的使用存在很多差异,不过共同点是都把“同步”给弱化了,或者说让“主线程”更加健壮了。不仅alert不能阻断主线程,HTTP同步请求也不能阻断,甚至JavaScript的循环都不能阻断。虽然这里的测试中JavaScript循环确实让CSS3的动画效果停止了,这只能说明JavaScript循环在主线程中的优先级超过了CSS3(这里的优先级不是线程优先级的概念,是说JavaScript在实现“同步”时劫持的线程消息更广)。
<?@sleep($_SERVER['QUERY_STRING']);?> 这是个有浏览器差异的结果。使用HTTP同步请求在Firefox和IE中无法阻止CSS3动画,只有Chrome中阻止了。而使用JavaScript循环来阻断对这三个浏览器都生效。目前的浏览器对线程的使用存在很多差异,不过共同点是都把“同步”给弱化了,或者说让“主线程”更加健壮了。不仅alert不能阻断主线程,HTTP同步请求也不能阻断,甚至JavaScript的循环都不能阻断。虽然这里的测试中JavaScript循环确实让CSS3的动画效果停止了,这只能说明JavaScript循环在主线程中的优先级超过了CSS3(这里的优先级不是线程优先级的概念,是说JavaScript在实现“同步”时劫持的线程消息更广)。
0 0
- 同步HTTP请求也很温柔
- http同步请求
- HTTP同步/异步请求
- android http 同步请求
- 异步与同步http请求
- NSMutableURLRequest Http 请求 同步 异步
- HTTP请求同步和异步
- HTTP简单的同步请求
- http同步请求的实现
- ios HTTP 同步 异步请求
- Http同步请求与异步请求
- Http 同步请求和异步请求
- Http同步请求和异步请求
- Andriod的Http请求获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息
- Http同步和异步请求区别
- Http同步和异步请求区别
- Qt同步方式进行http请求
- qt同步方式进行http请求
- 七腾软件精心打造永固混凝土ERP
- 【Android】神奇的android:clipChildren属性
- PopupWindow 放gridView 点击事件 与PopWindow消失逻辑
- Expression Blend实例中文教程(2) - 界面快速入门
- web项目中log4j的配置详解
- 同步HTTP请求也很温柔
- 可好看
- 堆和栈
- struts2学习笔记
- Java使用MPXJ操作MS Project
- org.hibernate.exception.JDBCConnectionException: could not execute query
- android:scaleType属性
- 生活中美女的确就是我们大客户
- java个人学习笔记11(abstract+interface)