您的位置:首页 > 其它

深入了解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有个安全策略的问题,大家做的时候再想办法解决吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: