`
dushanggaolou
  • 浏览: 172982 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ajax初步了解

    博客分类:
  • ajax
 
阅读更多

1简介: Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写。Ajax 由 HTML

                   JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交

           互性的 Ajax 应用程序。

2Ajax 应用程序所用到的基本技术

· HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。

· JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。

· DHTML 或 Dynamic HTML,用于动态更新表单。我们将使用 divspan 和其他动态 HTML 元素来标记 HTML

· 文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML

3、XMLHttpRequest 对象这是处理所有服务器通信的对象  

 

<script language="javascript" type="text/javascript"> 
              var xmlHttp = new XMLHttpRequest(); 
</script>

 

4、ajax通信与一般web应用程序的比较

<!--EndFragment-->

     

 

               ajax通信                            一般web应用程序 

 

                    

当用户填写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给服务器
JavaScript 代码捕获表单数据并向服务器发送请求
 同时用户屏幕上的表单也不会闪烁、消失或延迟
 
 

用户填写表单字段并单击 Submit 按钮

<!--EndFragment-->

整个表单发送到服务器

服务器将它转发给处理表单的脚本(通常是 PHP 或 Java,也可能是 CGI 进程或者类似的东西)<!--EndFragment-->
脚本执行完成后再发送回全新的页面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 ajax:JavaScript 代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是

          说 JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使

           用应用程序。

           服务器将数据返回 JavaScript 代码(仍然在 Web 表单中),后者决定如何处理这些数据。它可以

           迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。

           JavaScript 代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!

           这就是 XMLHttpRequest 的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完

           全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验,但

           是背后又拥有互联网的全部强大力量。

一般web应用程序:该页面可能是带有已经填充某些数据的新表单的 HTML,也可能是确认页面,或者是

           具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或程序处理和返回

           新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。这就是交互性差

           的原因,用户得不到立即反馈,因此感觉不同于桌面应用程序。

 

 

 5、javaScript要完成的任务  

 

 

  • 获取表单数据:JavaScript 代码很容易从 HTML 表单中抽取数据并发送到服务器。
  • 修改表单上的数据:更新表单也很简单,从设置字段值到迅速替换图像。
  • 解析 HTML 和 XML:使用 JavaScript 代码操纵 DOM,处理 HTML 表单服务器返回的 XML 数据的结构。

 

 6、获取request对象

 

               几年前的那些讨厌的浏览器战争,使得XMLHttpRequest 成了这场战争的牺牲品之一。因此获

       得XMLHttpRequest 对象可能需要采用不同的方法。

      

   在 Microsoft 浏览器上创建 XMLHttpRequest 对象

                
var xmlHttp = false;
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}

     

     处理 Mozilla 和非 Microsoft 浏览器

    

var xmlHttp = new XMLHttpRequest object;

 

  处理支持多种浏览器的方式创建 XMLHttpRequest 对象

/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

 

 

 

现在先不管那些注释掉的奇怪符号,如 @cc_on,这是特殊的 JavaScript 编译器命令,将在下一期针对 XMLHttpRequest 的文章中详细讨论。这段代码的核心分为三步:

  1. 建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。
  2. 尝试在 Microsoft 浏览器中创建该对象:
    • 尝试使用 Msxml2.XMLHTTP 对象创建它。
    • 如果失败,再尝试 Microsoft.XMLHTTP 对象。
  3. 如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。

最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器

 

7、Ajax 的请求/响应 

   有了一个崭新的 XMLHttpRequest 对象,接下来就是在所有 Ajax 应用程序中基本都雷同的流程: 

  1. 从 Web 表单中获取需要的数据。
  2. 建立要连接的 URL。
  3. 打开到服务器的连接。
  4. 设置服务器在完成后要运行的函数。
  5. 发送请求。

8、实例应用

   

function callServer() {
  // Get the city and state from the web form
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  // Only go on if there are values for both fields
  if ((city == null) || (city == "")) return;
  if ((state == null) || (state == "")) return;
  // Build the URL to connect to
  var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
  // Open a connection to the server
  xmlHttp.open("GET", url, true);
  // Setup a function for the server to run when it's done
  xmlHttp.onreadystatechange = updatePage;
  // Send the request
  xmlHttp.send(null);
}

 

         其中大部分代码意义都很明确。开始的代码使用基本 JavaScript 代码获取几个表单字段的值。然后设置一个 PHP 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用简单的 GET 参数附加在 URL 之后。

           然后打开一个连接,这是您第一次看到使用 XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为 true,那么将请求一个异步连接(这就是 Ajax 的由来)。如果使用 false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 JavaScript 方法)。

      xmlHttp(要记住,这是 XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成 后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。

            最后,使用值 null 调用 send()。因为已经在请求 URL 中添加了要发送给服务器的数据(city 和 state),所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。

 

9、处理响应

   

    现在要面对服务器的响应了。现在只要知道两点:

  • 什么也不要做,直到 xmlHttp.readyState 属性的值等于 4。
  • 服务器将把响应填充到 xmlHttp.responseText 属性中。

其中的第一点,即就绪状态。第二点,使用 xmlHttp.responseText 属性获得服务器的响应。


    处理服务器响应

                
function updatePage() {
  if (xmlHttp.readyState == 4) {
    var response = xmlHttp.responseText;
    document.getElementById("zipCode").value = response;
  }
}

 10、连接web表单

      

       一个 JavaScript 方法捕捉用户输入表单的信息并将其发送到服务器,另一个 JavaScript 方法监听和处理响应,并在响应返回时设置字段的值。所有这些实际上都依赖于调用 第一个 JavaScript 方法,它启动了整个过程。
   启动一个 Ajax 过程

                
<form>
 <p>City: <input type="text" name="city" id="city" size="25" 
       onChange="callServer();" /></p>
 <p>State: <input type="text" name="state" id="state" size="25" 
       onChange="callServer();" /></p>
 <p>Zip Code: <input type="text" name="zipCode" id="city" size="5" /></p>
</form>

       如果感觉这像是一段相当普通的代码,那就对了,正是如此!当用户在 city 或 state 字段中输入新的值时,callServer() 方法就被触发,于是 Ajax 开始运行了。 

 

 

 

 

 

 

 

 

 

 

 

 

<!--EndFragment-->
分享到:
评论

相关推荐

    asp.net ajax初步入门

    ASP.NET AJAX,全称为ASP.NET Asynchronous JavaScript and XML,是一种微软提供的技术框架,...对于初学者来说,通过阅读"asp.net ajax初步入门"这样的电子图书,可以逐步掌握这些技能,开启在ASP.NET领域的开发之旅。

    Ajax+nodemon+axios等初步了解

    在"Express框架使用"的文件中,我们可以了解到Express是Node.js的一个Web应用框架,为构建Web服务提供了简洁灵活的API。它包含了路由处理、中间件系统和各种实用功能,使得开发基于Node.js的Web应用变得简单高效。 ...

    初步使用ajax.pdf

    对ajax的初步了解和简单使用方法。 内容:初步认识ajax;ajax的同步和异步;ajax状态码;ajax请求兼容问题;发送带参数的GET/POST请求;封装ajax的过程;

    AJAX+PHP实现的几种效果

    6. **表单验证**:在客户端进行初步验证后,AJAX将数据发送到PHP进行服务器端验证,防止跨站脚本攻击等安全问题。 7. **实时聊天**:AJAX可以定时轮询或使用WebSocket技术与PHP服务器通信,实现实时聊天功能。 8. ...

    初步体验Ajax异步提交

    同时,检查服务器端的代码,了解它是如何接收和处理这些异步请求的。 **10. 总结** Ajax技术极大地提高了Web应用的交互性,减少了页面刷新带来的延迟感。在MyEclipse项目中,通过分析`AjaxTest`的源码,我们可以...

    ajax一个最简单的例子

    通过这个简单的Ajax例子,你应该已经对Ajax有了初步的了解。随着实践的深入,你会发现Ajax在Web开发中有着广泛的应用,能够显著提升网站的用户体验和性能。继续学习和探索,你将能更好地掌握这一关键技术。

    Ajax的控件

    而"ReadMe.txt"文件通常包含了安装指南、版本信息、更新日志以及可能遇到的问题和解决方案,对于初次使用者来说,这是获取初步信息和帮助的重要来源。 总的来说,Ajax控件通过提供丰富的用户界面组件和便捷的异步...

    分析Ajax接口获取QS排名的Python爬虫及QS排名文档.zip

    总的来说,这个项目展示了如何利用Python和Ajax技术获取并处理动态加载的网络数据,以及如何对获取的数据进行初步分析。对于学习Python爬虫和数据处理的初学者来说,这是一个非常有价值的实践案例。

    asp.net ajax in action

    - `intro.txt`:可能是书籍的简介或者序言,提供对书本内容的初步了解。 通过阅读这本书,开发者可以全面掌握ASP.NET AJAX技术,从而构建出更高效、更具交互性的Web应用程序。无论是初学者还是有经验的开发者,都能...

    asp.net ajax完全手册1-3章

    前3章涵盖了AJAX的基础概念、核心技术以及在实际开发中的初步应用。 第一章:AJAX概述 在这一章中,读者将了解到AJAX(Asynchronous JavaScript and XML)的核心理念,即通过JavaScript实现页面的异步更新,提升Web...

    AJAX 源码范例

    当上传文件时,客户端同时显示文件上传的进度,从而及时了解文件传送情况。 源码结构说明 1.FileUpload文件夹下为源文件 2.FileUpload.war为部署文件 &lt;br&gt;第21章 程序描述:本章将实现通过滑块来...

    ajax简单入门讲解

    通过上述介绍,你已经对Ajax有了初步的认识。观看提供的SWF格式视频教程,将有助于你更深入地理解和掌握Ajax的实践应用。记住,实践是最好的老师,尝试在自己的项目中使用Ajax,不断提升技能水平。

    ASP.NET.AJAX.in.Action

    - **Microsoft Ajax 库的初步应用**: - Microsoft Ajax 库是 ASP.NET AJAX 的核心组成部分之一,它为开发者提供了一系列工具和类库,用于简化 JavaScript 编程,并支持更复杂的 AJAX 功能实现。 - 开发者可以通过...

    ASP.net.Ajax电子教程

    第一集通常会从基础入手,介绍ASP.NET AJAX的安装、配置以及基本工作原理,帮助初学者建立起对这项技术的初步认识。 首先,我们需要了解ASP.NET AJAX的核心组件:UpdatePanel和ScriptManager。UpdatePanel是一个...

    Ajax基础教程 附源码

    通过以上介绍,我们对Ajax的基本概念、使用方法以及与Java的结合有了初步了解。附带的源码可以帮助你更直观地学习和实践Ajax技术。在实际项目中,合理运用Ajax可以显著提升网站的性能和用户体验。

    AJAX开发简略(含续一)

    描述中同样提及“AJAX开发简略(含续一)”,这可能意味着这是一个系列教程的一部分,涵盖了AJAX开发的多个阶段或主题,这次主要讲解的是AJAX的初步概念和后续的深入内容。 标签与标题相同,进一步确认了这个主题的...

    AJAX完全入门(有实例)

    通过以上内容的学习,你应该对AJAX有了初步的了解。实践中,不断探索和优化,你将能够构建出更加高效、交互性更强的Web应用。现在,你可以打开提供的"AJAX完全入门"压缩包文件,进一步学习其中的实例和详细教程。

    初步了解JavaScript,Ajax,jQuery,并比较三者关系

    了解它们的基本概念、组成部分以及它们之间的关系,对于前端开发者来说至关重要。 首先,JavaScript是一种广泛应用于客户端Web开发的脚本语言,它允许开发者在网页中嵌入脚本代码,从而实现交互式功能。JavaScript...

    Beginning.Ajax.with.ASP.NET .zip

    1. **Ajax基础**:了解Ajax的核心概念,包括XMLHttpRequest对象、JavaScript事件处理和DOM操作。 2. **ASP.NET与Ajax集成**:掌握如何在ASP.NET环境中使用Ajax技术,包括使用ASP.NET AJAX框架(如UpdatePanel、...

    ajax聊天室 jquery+C#

    通过这个项目,初学者可以了解Ajax与后端交互的基本流程,以及如何利用jQuery简化前端操作。同时,对C#的HTTP处理和数据库操作有初步认识。实践过程中,还可以学习如何将前后端数据绑定,实现动态、实时的Web应用...

Global site tag (gtag.js) - Google Analytics