之前在"不学AJAX,我可以做得更好"一文中我已经对AJAX的本质做了充分的说明.其实我觉得
自己已经是多事,就那点简单的东西,用得着写成一篇文章吗?(我更无法理解Ajax这种"东西"
竟然会有专著来说明它).
但是,可悲的是就这么简单的东西,却有好多人没有理解,之前在bea论坛上有很多"专家"
把AJAX说成是"异步通讯"或"异步连结",今天再次在BEA的开发者专场上看到speaker的演讲
稿的中文仍说成是"非同步连结",我不得不写这篇文章来说明一下,就这么简单的东西,连最核
心的东西还是弄错了.
.........(此处省略一个实在不好意思说的情况,就在我想写这篇文章的时候,仍然...)
将HttpXmlRequest的结果通过innerHTML显示在页面中,这个过程是"异步浏览",而不是
异步连结或异步通讯,这绝对不是一个用词表达不同,而是太多的人都认为ajax是异步通讯的.
HttpXmlRequest通讯XMLHTTP控件与服务端建立的是标准的HTTP请求,基于同步的阻塞的
TPC/IP协议,绝对不可能是异步的.所谓的异步是浏览器不会因为等待结果的返回而阻塞其它
事件.也就是说即使结果没有返回,其它元素照样可以被解释和执行,其它的事件照样响应.
最直观的就是这事你的MOUSE在页面上可以点击任何元素而不是处在等待状态.
"将调用的结果显示在页面上"这个过程是异步的,但这个过程建立的连结是标准的http连结,
是完完全全的同步连结!