谁能够帮我详细的介绍一下ajax啊?

谁能够帮我详细的介绍一下ajax啊?,第1张

这个是我自己在学习的时候的笔记,给你看看。或许能理解。。。 AJAX是异步交互,在客户端与服务器只加引入一个媒介,从改变了同步交互过程中“处理--等待--处理--等待”的模式。

浏览器在执行任务时即装载了Ajax引擎。该引擎室js编写的,通常位于页面的框架中,负责转发客户端和服务器之间的交互。另外,

通过js调用AJAX引擎,可以使得页面不在被整体刷新,而仅仅更新用户需要的部分,不但避免了“白屏”现象,还大大节省了带快,加快了

web浏览的速度。

好处可以归纳为几点:

1.减轻服务器的负担,加快浏览速度。逗巧

2.带来更好的用户体验。

3.基于标准化并被广泛支持的技术,不需要下载插件或小程序。目前主流的浏览器都支持AJAX技术,使得它的推广十分顺畅。

4.进一步促进页面呈现书数据分离。AJAX获取服务器可以完全利用单独的模块进行 *** 作,从而使得技术人员和美工人员能够更好的分工与配合。

AJAX的组成部分:是由4中技术组成的。

JAVAScript:是通用的脚本语言,用山兄键来嵌入在某种应用之中。AJAX应用程序是用JAVASCRIPT编写的。

CSS:CSS为WEB页面元素提供了可视化样式的定义方法。AJAX应用中,用户界面的样式可以通过CSS独立修改。

DOM:通过JS修改DOM,AJAX应用程序可以再运行时改变用户界面,或者局部更新页面中的某个节点

XMLHttpRequest:XMLHttpRequest对象允许Web程序员从WEB服务器以后台的方式获取数据。数据的格式通常是XML,或者是文本。

什么叫异步交互: 异步交互可以使页面同事处理多件事物,而传统的同步交互必须一件一件事情按顺序完成。

不太严谨的说,异步交互就是一个简单的多线程,它能够使用户同事进行多项 *** 作而不间断。AJAX的的异步尘樱交互在后台默默地工作着,呈现给用户一个无刷新的页面。

优点:能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避宴搏蚂免了在网络上发送那些没有改变的信息。Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

缺点:破坏浏览器的后退与加入收藏书签银耐功能。一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能晌埋够取消他们的前一次 *** 作,但是在Ajax应用程序中,却无法这样做。

应用

Ajax前景非常乐观,可以提高系统性能,优化用户界面。Ajax现有直接框架AjaxPro,可以引入AjaxPro.2.dll文件,可以直接在前台页面JavaScript调用后台页面的方法。但此框架与表单验证有冲突。另外微软也引入了Ajax组件,需要添加AjaxControlToolkit。dll文件,可以在控件列表中出现相关控件。

以上内容参考:百度百科-ajax

1、XMLHTTPRequest

Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写启山数据(又称无刷新更新页面),这一特点主要得益于XMLHTTP组件XMLHTTPRequest对象。这样就可以向再发桌面应用丛旁者程序只同服务器进行数据层面的交换,而不用每次都刷新界面也不用每次将数据处理的工作提交给服务器来做,这样即减轻了服务器的负担又加快了响应速度、缩短了用户等候时间。

最早应用XMLHTTP的是微软,IE(IE5以上)通过允许开发人员在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能,开发人员可以不用从当前的Web页面导航而直接传输数据到服务器上或者从服务器取数据。这个功能是很重要的,因为它帮助减少了无状态连接的痛苦,它还可以排除下载冗余HTML的需要,从而提高进程的速度。Mozilla(Mozilla1.0以上及NetScape7以上)做出的回应是创建它自己的继承XML代理类:XMLHttpRequest类。Konqueror (和Safari v1.2,同样也是基于KHTML的浏览器)也支持XMLHttpRequest对象,而Opera也将在其v7.6x+以后的版本中支持XMLHttpRequest对象。对于大多数情况,XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性也类似,只是有一小部分属性不支持。

XMLHttpRequest的应用:

XMLHttpRequest对象在JS中的应用

var xmlhttp = new XMLHttpRequest()

微软的XMLHTTP组件在JS中的应用

var xmlhttp = new ActiveXObject(Microsoft.XMLHTTP)

var xmlhttp = new ActiveXObject(Msxml2.XMLHTTP)

XMLHttpRequest 对象方渗薯法

if (typeof XMLHttpRequest == "undefined") {

XMLHttpRequest = function () {

var msxmls = ["MSXML3", "MSXML2", "Microsoft"]

for (var i=0i <msxmls.lengthi++) {

try {

return new ActiveXObject(msxmls[i]+".XMLHTTP")

} catch (e) { }

}

throw new Error("No XML component installed!")

}

}

function createXMLHttpRequest() {

try {

// Attempt to create it "the Mozilla way"

if (window.XMLHttpRequest) {

return new XMLHttpRequest()

}

// Guess not - now the IE way

if (window.ActiveXObject) {

return new ActiveXObject(getXMLPrefix() + ".XmlHttp")

}

}

catch (ex) {}

return false

}

XMLHttpRequest 对象方法

方法 描述

abort() 停止当前请求

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

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

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

send(content) 发送请求

setRequestHeader("label", "value") 设置header并和请求一起发送

XMLHttpRequest 对象属性

属性 描述

onreadystatechange 状态改变的事件触发器

readyState 对象状态(integer):

0 = 未初始化

1 = 读取中

2 = 已读取

3 = 交互中

4 = 完成

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

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

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

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

2、JavaScript

JavaScript是一在浏览器中大量使用的编程语言,,他以前一直被贬低为一门糟糕的语言(他确实在使用上比较枯燥),以在常被用来作一些用来炫耀的小玩意和恶作剧或是单调琐碎的表单验证。但事实是,他是一门真正的编程语言,有着自已的标准并在各种浏览器中被广泛支持。

3、DOM

Document Object Model。

DOM是给 HTML 和 XML 文件使用的一组 API。它提供了文件的结构表述,让你可以改变其中的内容及可见物。其本质是建立网页与 Script 或程序语言沟通的桥梁。

所有WEB开发人员可 *** 作及建立文件的属性、方法及事件都以对象来展现(例如,document 就代表“文件本身“这个对像,table 对象则代表 HTML 的表格对象等等)。这些对象可以由当今大多数的浏览器以 Script 来取用。

一个用HTML或XHTML构建的网页也可以看作是一组结构化的数据,这些数据被封在DOM(Document Object Model)中,DOM提供了网页中各个对象的读写的支持。

4、XML

可扩展的标记语言(Extensible Markup Language)具有一种开放的、可扩展的、可自描述的语言结构,它已经成为网上数据和文档传输的标准。它是用来描述数据结构的一种语言,就正如他的名字一样。他使对某些结构化数据的定义更加容易,并且可以通过他和其他应用程序交换数据。

5、综合

Jesse James Garrett提到的Ajax引擎,实际上是一个比较复杂的JavaScript应用程序,用来处理用户请求,读写服务器和更改DOM内容。

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

基于XML的网络通讯也并不是新事物,实际上FLASH和JAVA Applet都有不错的表现,现在这种富交互在网页上也可用了,基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序。

Ajax是传统WEB应用程序的一个转变。以前是服务器每次生成HTML页面并返回给客户端(浏览器)。在大多数网站中,很多页面中至少90%都是一样的,比如:结构、格式、页头、页尾、广告等,所不同的只是一小部分的内容,但每次服务器都会生成所有的页面再返回给客户端,这无形之中是一种浪费,不管是对于用户的时间、带宽、CPU耗用,还是对于ISP的高价租用的带宽和空间来说。如果按一页来算,只能几K或是几十K可能并不起眼,但像SINA每天要生成几百万个页面的大ISP来说,可以说是损失巨大的。而AJAX可以所为客户端和服务器的中间层,来处理客户端的请求,并根据需要向服务器端发送请求,用什么就取什么、用多少就取多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于纯后台处理并重载的方式缩短了用户等待时间,也把对资源的浪费降到最低,基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序,所以Ajax对于用户和ISP来说是双盈的。

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12327982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存