深入了解AJAX
2009-05-05 21:42
204 查看
ajax的本质是什么?今天在网上看到有人说是啊贾克斯的球迷提出的东西,呵呵~~很经典的一个回答。有人说是就是js,有人说是模拟的request和post。其中我比较认可的最后的说法。不过很多人都只是看到现象,包括以前的我,认为ajax就是js的东西,主要功能和用途就是实现无刷新页面。
下面我把我对ajax认识跟大家分享一下,主要是我根据现象的一些猜想,并不是微软的权威,大家觉得好就支持一些,觉得不好欢迎指正。
用过ajax的人大概都知道xmlhttp吧,不知道大家在用的时候是否想过,为什么叫这个名字呢?其实是有原因,ajax的请求无非是xml和http。我们通过ajax去同步或异步调用一个页面,并从这个页面获取到数据,再通过js显示在我们的页面,这是我们看得到的现象。那么我们看不到的是什么呢?其实ajax的核心主要是个com组件,页面通过js去触发com组件的一个事件,假如你要求com组件执行的是个同步的ajax请求的话,那么这个时候 ie的线程会进入到com,com通过一个封装好http头的socket链接请求服务器,这个时候服务器就会当正常的http请求把请求的页面返回给这个com组件,当com获取到数据后又主动的调用回js,这样就ajax同步工作的本质,那么异步呢?异步其实也一样,不过异步的话,当ie把当前线程交给com的时候,com把这条线程又还给ie,自己开辟一条新的线程去做请求的事情,所以不会造成ie阻塞死在那里。
大家如果感兴趣的话可以自己做一个com代替传说中ajax。当然,真正做这个不是那么容易。不过大家如果会点flash的话,可以通过flash去验证这一观点,因为flash的播放器本身就是一个com组件,并且as3提供了socket的对象,这个实现起来比较简单点。不过使用flash的socket有个安全策略的问题,大家做的时候再想办法解决吧!
下面我把我对ajax认识跟大家分享一下,主要是我根据现象的一些猜想,并不是微软的权威,大家觉得好就支持一些,觉得不好欢迎指正。
用过ajax的人大概都知道xmlhttp吧,不知道大家在用的时候是否想过,为什么叫这个名字呢?其实是有原因,ajax的请求无非是xml和http。我们通过ajax去同步或异步调用一个页面,并从这个页面获取到数据,再通过js显示在我们的页面,这是我们看得到的现象。那么我们看不到的是什么呢?其实ajax的核心主要是个com组件,页面通过js去触发com组件的一个事件,假如你要求com组件执行的是个同步的ajax请求的话,那么这个时候 ie的线程会进入到com,com通过一个封装好http头的socket链接请求服务器,这个时候服务器就会当正常的http请求把请求的页面返回给这个com组件,当com获取到数据后又主动的调用回js,这样就ajax同步工作的本质,那么异步呢?异步其实也一样,不过异步的话,当ie把当前线程交给com的时候,com把这条线程又还给ie,自己开辟一条新的线程去做请求的事情,所以不会造成ie阻塞死在那里。
大家如果感兴趣的话可以自己做一个com代替传说中ajax。当然,真正做这个不是那么容易。不过大家如果会点flash的话,可以通过flash去验证这一观点,因为flash的播放器本身就是一个com组件,并且as3提供了socket的对象,这个实现起来比较简单点。不过使用flash的socket有个安全策略的问题,大家做的时候再想办法解决吧!
相关文章推荐
- 深入了解 Microsoft AJAX Library
- JavaScript And Ajax(深入了解客户端回调)
- 深入了解 Microsoft AJAX Library
- Ajax之深入了解
- 深入了解 Microsoft AJAX Library
- 深入了解Ajax之XMLHttpRequest
- Ajax Hacks-hack9 深入了解HTTP Response
- 深入了解 Microsoft AJAX Library
- 深入了解 Microsoft AJAX Library
- 深入了解 Microsoft AJAX Library (转自msdn,觉得不错)
- 深入了解WM_SIZE
- 深入了解AS3 Socket 和TCP
- java serializable深入了解
- 【深入了解cocos2d-x 3.x】UI树(3)——UI树的渲染机制
- 了解一下ajax下json传入后台数据
- 深入了解Node模块原理
- 【深入了解cocos2d-x 3.x】内置数据结构(2)——Map
- React实战-深入源码了解Redux用法之Connect
- AJAX入门之深入理解JavaScript中的函数
- Android自定义View的实现方法,带你一步步深入了解View(四)