锁定老帖子 主题:ajax入门详解(一)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-03
最后修改:2010-04-03
l 一个实例 在开始正式讲解 Ajax之前,首先让我们先来看看Google Map使用Ajax改善其产品设计的效果。 1. 在浏览器地址栏中输入http://maps.google.com打开Google Map的界面。 2. 在页面顶端的搜索框中输入“China”,单击“Search”按钮。 3. 单击地图右上角的“Satellite”按钮,切换到卫星界面。 4. 调整地图左上角的尺寸,方法或者缩小当前区域。可以看到,地图区域的图象根据标尺的位置快速的变换。 5. 按住鼠标左键,拖拽地图,地图区域的图象随着鼠标的移动而移动这个过程的图象是实时更新的。效果如下图所。
由上可以明显的看出,当用户拖动地图进行操作的时候,Web页上的地图立即发生相应的变化,页面却没有刷新,当按住鼠标左键移动地图的时候,地图跟着移动,这个过程是快速的,而期间用户没有想服务器提交表单或和单击一个超链接。如果用传统的Web应用程序交互思维来理解,这个过程是难以理解的,这正是Ajax的魅力。 l什么是Ajax? 在研究ajax之前首先让我们先来讨论一个问题 ——什么是Web 2.0 。听到 Web 2.0 这个词的时候,应该首先问一问 “Web 1.0 是什么?” 虽然很少听人提到 Web 1.0,实际上它指的就是具有完全不同的请求和响应模型的传统 Web。比如,到 hdu.edu.cn 网站上点击一个按钮。就会对服务器发送一个请求,然后响应再返回到浏览器。该请求不仅仅是新内容和项目列表,而是另一个完整的 HTML 页面。因此当 Web 浏览器用新的 HTML 页面重绘时,可能会看到闪烁或抖动。事实上,通过看到的每个新页面可以清晰地看到请求和响应。
因此在这里,我们是时候可以对ajax做出一个完整的解释了,Adaptive Path公司的Jesse James Garrett这样定义Ajax: Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:
这非常好,但为什么要以Ajax命名呢?其实术语Ajax是由Jesse James Garrett创造的,他说它是“Asynchronous JavaScript + XML的简写”。 l Ajax工作原理 通过上述的定义,我们应该已经知道Ajax的组成了,即他是由XHTML,XML,CSS,DOM,XMLHttpRequest,JavaScript等技术综合而成的,然而,真正使用Ajax能实现异步通信,要真正实现这种绚丽的奇迹,必须非常熟悉一个JavaScript 对象,即 XMLHttpRequest。因此我们要了解Ajax的工作原理,就要从理解XMLHttpRequest这个对象开始。 下面给出将要用于该对象的很少的几个 方法和属性。 ·open():建立到服务器的新请求。 ‘onreadystatechange:回调方法 ·responseXML:服务器返回的请求响应XML形式组织的文本。 下面我们简单的介绍一下这几个方法的作用。 l 创建一个XMLHttpRequest 首先需要创建一个新变量并赋给它一个 XMLHttpRequest 对象实例。这在 JavaScript 中很简单,只要对该对象名使用 new 关键字即可,如下代码所示。 <script language="javascript" type="text/javascript"> 代码1:一个详细的XMLHttpRequest对象的创建 <script language="javascript" type="text/javascript"> function getXMLHttpRequest(){ request = new XMLHttpRequest(); } 此外,在上面的代码中,我们是不是注意到了一个问题,就是当request = new XMLHttpRequest();出现异常的时候,在catch语句中我们用了request = new ActiveXObject("Msxml2.XMLHTTP");和request = new ActiveXObject("Microsoft.XMLHTTP");等语句进行对象获取,这是针对IE浏览器而进行的操作,因为IE浏览器对 XMLHttpRequest 版本有不同的称呼。事实上,它将其称为几种 不同的东西。如果使用较新版本的 Internet Explorer,则需要使用对象 Msxml2.XMLHTTP,而较老版本的 Internet Explorer 则使用 Microsoft.XMLHTTP。我们需要支持这两种对象类型(同时还要支持非 Microsoft 浏览器)。 l 用 XMLHttpRequest 发送请求 代码2: 建立请求 URL <script language="javascript" type="text/javascript"> 代码3: Break Neck Pizza 表单 <body> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-04-06
写得不错,支持下。
ajax get方式提交,楼主能否给一份post的提交方案,我试过网上很多代码都不行。 |
|
返回顶楼 | |
发表时间:2010-04-06
最近JE上好像很多这类将基础的文章。
|
|
返回顶楼 | |
发表时间:2010-04-06
都是一些要发布新书的牛人先给我们预览一下的 不过这个小白鼠 我愿意
|
|
返回顶楼 | |
发表时间:2010-04-06
meiowei 写道 都是一些要发布新书的牛人先给我们预览一下的 不过这个小白鼠 我愿意 我也愿意、 |
|
返回顶楼 | |
发表时间:2010-04-06
期待2】
|
|
返回顶楼 | |
发表时间:2010-04-06
satanest 写道 最近JE上好像很多这类将基础的文章。
貌似js要爆发……期待…… |
|
返回顶楼 | |
发表时间:2010-04-07
用框架做吧.不要用原生的
|
|
返回顶楼 | |
发表时间:2010-04-07
下一篇应该会讲post的了吧,这个用的更多点
|
|
返回顶楼 | |
发表时间:2010-04-08
86asm 写道 写得不错,支持下。
ajax get方式提交,楼主能否给一份post的提交方案,我试过网上很多代码都不行。 http://04101334.iteye.com/blog/637695 刚写的这篇就是详细介绍如何使用post方式发送ajax的,希望对您有所帮助 |
|
返回顶楼 | |