`
longgangbai
  • 浏览: 7250491 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

Ajax的工作原理

 

使用Ajax的主要原因:1、通过适当的Ajax应用达到更好的用户体验;2、把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。  

AjaxAsynchronous JavaScript and XML的缩写。它包括

使用XHTMLCSS标准化呈现;

使用DOM实现动态显示和交互;

使用XMLXSLT进行数据交换与处理;

使用XMLHttpRequest进行异步数据读取;

最后用JavaScript绑定和处理所有数据;

工作原理

    Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。

    Ajax其核心只有JavaScriptXMLHTTPRequestDOM,在旧的交互方式中,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端, 每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML,而用户每次都要浪费时间和带宽去重新读取整个页面。而使用Ajax后用户从感觉上几乎所有的操作都会很快响应没有页面重载(白屏)的等待。

1XMLHTTPRequest

    Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无刷新更新页面),这一特点主要得益于XMLHTTP组件XMLHTTPRequest对象。

XMLHttpRequest 对象方法描述 

abort() 停止当前请求 

getAllResponseHeaders() 作为字符串返问完整的headers 

getResponseHeader("headerLabel") 作为字符串返问单个的header标签 

open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL, 方法, 和其他参数 

send(content) 发送请求

setRequestHeader("label", "value") 设置header并和请求一起发送 ('post'方法一定要 )

XMLHttpRequest 对象属性描述 

onreadystatechange 状态改变的事件触发器,readyState 对象状态(integer):

0 = 未初始化 1 = 读取中 2 = 已读取 3 = 交互中 4 = 完成 

responseText 服务器进程返回数据的文本版本 

responseXML 服务器进程返回数据的兼容DOMXML文档对象  

responseBody 服务器返回的主题(非文本格式)

responseStream 服务器返回的数据流

status 服务器返回的状态码, 如:404 = "文件末找到" 200 ="成功" 

statusText 服务器返回的状态文本信息 

2JavaScript

JavaScript是一在浏览器中大量使用的编程语言。

3DOM Document Object Model

DOM是给 HTML XML 文件使用的一组 API。它提供了文件的结构表述,让你可以改变其中的內容及可见物。其本质是建立网页与 Script 或程序语言沟通的桥梁。所有WEB开发人员可操作及建立文件的属性、方法及事件都以对象来展现(例如,document 就代表“文件本身“这个对像, table 对象则代表 HTML 的表格对象等等)。这些对象可以由当今大多数的浏览器以 Script 来取用。一个用HTMLXHTML构建的网页也可以看作是一组结构化的数据,这些数据被封在DOMDocument Object Model)中,DOM提供了网页中各个对象的读写的支持。

4XML

可扩展的标记语言(Extensible Markup Language)具有一种开放的、可扩展的、可自描述的语言结构,它已经成为网上数据和文档传输的标准。

5、综合

Ajax引擎,实际上是一个比较复杂的JavaScript应用程序,用来处理用户请求,读写服务器和更改DOM内容。JavaScriptAjax引擎读取信息,并且互动地重写DOM,这使网页能无缝化重构,也就是在页面已经下载完毕后改变页面内容,这是我们一直在通过JavaScriptDOM在广泛使用的方法,但要使网页真正动态起来,不仅要内部的互动,还需要从外部获取数据,在以前,我们是让用户来输入数据并通过DOM来改变网页内容的,但现在,XMLHTTPRequest,可以让我们在不重载页面的情况下读写服务器上的数据,使用户的输入达到最少。

Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),而在以前两者是没有清晰的界限的,数据与呈现分离的分离,有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理。

四、应用

Ajax理念的出现,揭开了无刷新更新页面时代的序幕,并有代替传统web开发中采用form(表单)递交方式更新web页面的趋势。

五、Ajax的优势

1、减轻服务器的负担。因为Ajax的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的负担;

2、无刷新更新页面,减少用户实际和心理等待时间;

3、也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本;

4Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离);

 

Ajax原始代码如下:常用的东东

 function() {

var xhr = new AjaxXmlHttpRequest();

$("#btnAjaxOld").click(function(event) {

var xhr = new AjaxXmlHttpRequest();

xhr.onreadystatechange = function() {

if (xhr.readyState == 4) {

 document.getElementById("divResult").innerHTML = xhr.responseText;

 }

}

 xhr.open("GET", "data/AjaxGetCityInfo.aspx?resultType=html", true); xhr.send(null); });

 }

 

//跨浏览器获取XmlHttpRequest对象

function AjaxXmlHttpRequest() {

var xmlHttp;

try {

// Firefox, Opera 8.0+, Safari

xmlHttp = new XMLHttpRequest();

} catch (e) {

// Internet Explorer

 try {

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

 } catch (e) {

 alert("您的浏览器不支持AJAX!");

return false; } }

}

 return xmlHttp;

}

分享到:
评论

相关推荐

    JQuery与Ajax常用代码实现对比

    JQuery与Ajax常用代码实现对比,大家可以看下,根据实际情况选用。

    ajax经典实例+代码大全

    ajax经典实例+代码大全 绝对经典 -------- 目录说明 -------- database 目录存放数据库SQL文件 java 目录存放java源文件 webapp 目录存放实例页面及JSP源文件 -------------- 数据库安装说明 -------------- 了解...

    ajax常用实例代码

    登陆注册注销 数据库操作 跨页传值 显示长文本的一部分 获得当前服务器信息

    《Ajax编程技术与实例》源代码

     全书内容由浅入深,充分考虑了Ajax学习者的特点,并在配套光盘中提供了书中实例的全部源代码,以方便读者能够举一反三,编写出适合需求的程序。  本书不仅适合Ajax技术的初学者,还能够帮助有一定编程...

    javascript js ajax ui 代码库

    自己写的一些JS代码,包括常用的AJAX调用、DIV浮层、DOC处理查找。

    js 常用代码 收集有最齐全的web开发常用代码

    js 常用代码,收集有最齐全的web开发常用代码,及少见的js对浏览器的各项操作

    Ajax+JSP网站开发从入门到精通

    《Ajax+JSP网站开发从入门到精通》的源代码,全书共分为16章,包括JSP的基础知识、JSP访问外部数据、JSP高级技术、Ajax概述、Ajax相关技术、Ajax开发基础、Ajax开发模式、Ajax框架、Ajax常用技巧。本书最后介绍了6个...

    ajax实例教程

    ajax开发实例教程 源代码一些关于ajax常用实例和一些常用包

    疯狂Ajax讲义.zip.002

    第二部分详细介绍了Prototype、jQuery、DWR、AjaxTags等四个最常用的Ajax框架的用法,并针对每个框架提供了一个实用案 例。这两个部分是笔者在“疯狂Java实训营”的培训讲义,是《疯狂Ajax讲义:Prototype/jQuery+...

    28个常用JavaScript方法代码块

    这是个人整理的javascript的一些常用方法代码块!里面有ajax请求,浏览器的判断等一些常用代码。

    ajax学习代码

    ajax是非常常用的技术,主要作用是异步请求数据,实现局部刷新,这是我的一些学习代码,希望和大家分享

    ASP.NET常用代码和第三方控件和类生成模版

    ASP.NET常用代码和第三方控件和类生成模版 常用代码包含了jmail邮件收发,登录验证码自动生成,分页代码,浮动框架导航,权限设置,上传附件,图片上传,过滤字符串 等等。 第三方空间包含了 ajax控件,fck,jmail,...

    java 常用代码

    整理了一些 Ajax css ejb flex JAVA JavdScript jsp struts2 winform xml 数据库 上传和下载 的 常用代码

    就是常用的代码

    在写js代码是有一部分是常用的代码,页面传递阐述,截取参数等使用ajax

    jquery 常用代码

    jquery 常用代码 jquery属性 jquery文档处理 jQuery时间 jQuery效果 jQuery ajax

    230个常用JavaScript代码[

    230个常用JavaScript代码[XHTML _ CSS _ Script _ Ajax] 适合新手学习使用。

    AJAX个人站点整站源代码

    -采用最新AJAX技术,实现页面无刷新动态更新。 -全新类C/S的B/S框架基础结构设计。 -全新采用Tencent QQ2007清新海蓝色界面风格设计。 -与第一版数据完美兼容,新旧版本可以同时运行。 -采用活动页签版面设计,...

    超实用的JS代码段-源码.zip

    《超实用的JavaScript代码段》分为9章,包括JavaScript的一些必备知识,常用的表单处理、图片处理、内容展示、页面处理、日期处理、页面特效、移动开发等代码及其他常用代码,涉及闭包、Ajax、Data URI、DOM、BOM、...

Global site tag (gtag.js) - Google Analytics