技术开发 频道

Ajax快速入门


IT168技术文档】 
    Ajax的工作流程分析 

    在上面的例子中,许多初学者可能搞不清Ajax的具体运行流程,下面对Ajax的工作流程作一个总体介绍。
    Ajax的基本工作流程图:


    首先,在浏览器客户端创建对应的XMLHttpRequest对象,在login.jsp中找到对应的代码:
var http_request = false; function send_request(url) {//初始化、指定处理函数、发送请求的函数 http_request = false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest) { //Mozilla 浏览器 http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) {//设置MiME类别 http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE浏览器 try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { // 异常,创建对象实例失败 window.alert("不能创建XMLHttpRequest对象实例."); return false; } http_request.onreadystatechange = processRequest; // 确定发送请求的方式和URL以及是否同步执行下段代码 http_request.open("GET", url, true); http_request.send(null); }
    上面的代码中,根据不同的浏览器类型创建对应的XMLHttpRequest对象。 

    接下来,当用户点击“唯一性检查”提交对应的请求以后,即可通过内置的Ajax核心对象XMLHttpRequest以异步的方式发送请求,同时提供对应的表单数据,在login.jsp中相应的代码:
function userCheck() { var f = document.form1; var username = f.username.value; if(username=="") { window.alert("用户名不能为空。"); f.username.focus(); return false; } else { send_request('validate.jsp?username='+username); } }
    在请求提交之后为Ajax核心对象onreadystatechange指定好响应的函数之后,该监听器就开始工作。接下来浏览器客户端提供的请求被发送到服务器端,这里是validate.jsp页面进行处理,来校验输入的用户名是否是唯一的。 

    当响应的数据返回浏览器客户端时,在客户端一直监听的Ajax核心对象的onreadystatechange将会监听到对应的响应数据,此时就会按照预先设计好的业务逻辑进行处理,例如采用DOM进行页面的更新处理,本例中使用window对象提供的alert()方法进行提示信息的输出。Login.jspz中处理返回请求的代码:
// 处理返回信息的函数 function processRequest() { if (http_request.readyState == 4) { // 判断对象状态 if (http_request.status == 200) { // 信息已经成功返回,开始处理信息 alert(http_request.responseText); } else { //页面不正常 alert("您所请求的页面有异常。"); } } }
    从上面的例子中可以看出,在Ajax技术中最核心的对象就是XMLHttpRequest,该对象提供了对应的方法和属性来完成向服务器提交请求,以及接收来自服务器端处理的结果等功能。
0
相关文章