浅析AJ AX开发技术
【摘要】介绍了一种网站交互方式技术AJAX,对 AJAX 开发技术基本原理进行了探讨,最后列出一个初步的AJAX开发框架示例方便读者开发实用的W EB 应用程序。
【关键词】AJAX技术;异步通信;W EB;AJAX开发框架
web服务器是什么服务器一、AJAX介绍
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。AJAX以一种崭新的方式来使用所有的这些技术,使得传统的B/S方式的Web开发焕发了新的活力。
传统的 Web 应用采用同步交互过程,用户首先向 HTTP 服务器触发一个行为或请求的呼求。反过来,服务器执行某些任务,再向发出请求的用户返回一个HTML页面。这是一种不连贯的用户体验,服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白。
自从采用超文本作为 Web 传输和呈现之后,我们都是采用这一套传输方式。当负载比较小的时候,这并不会体现出有什么不妥。可是当负载比较大,响应时间要很长,这种等待就不可忍受了。严重的,超过响应时间,服务器干脆告诉你页面不可用。另外,某些时候,我只是想改变页面一小部分的数据,我们必须重新加载整个页面。当软件设计越来越讲究人性化的时候,这么糟糕的用户体验简直与这种原则背道而驰。要让用户不用老是等待服务器取数据,至少,我们应该减少用户等待的时间。现在,除了程序设计、编码优化和服务器调优之外,还可以采用 AJAX。
与传统的 Web 应用不同,AJAX 采用异步交互过程。AJAX在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理—等待—处理—等待缺点。用户的浏览器在执行任务时即装载了AJAX 引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。AJAX 引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。现在,可以用Javascript 调用AJAX引擎来代替产生一个 HTTP 的用户动作,内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给 AJAX 来执行。
二、AJAX 开发框架
AJAX实质上也是遵循 Request/Server 模式,所以这个框架基本的流程也是:对象初始化- >发送请求- >服务器接收- >服务器返回- >客户端接收- >修改客户端页面内容。只不过这个过程是异步的。
1、初始化对象并发出 XMLHttpRequest 请求
为了让Javascript 可以向服务器发送 HTTP 请求,必须使用XMLHttpRequest 对象。使用之前,要先将 XMLHttpRequest 对象实例化。之前说过,各个浏览器对这个实例化过程实现不同。IE 以ActiveX 控件的形式提供,而Mozilla 等浏览器则直接以XMLHttpRequest 类的形式提供。为了让编写的程序能够跨浏览器运行,要这样写:
if (window.XMLHttpRequest)
{ // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{ // IE
http_request = new ActiveXObject(”Microsoft.XMLHTTP”); }
有些版本的Mozilla 浏览器处理服务器返回的未包含 XML mime- type 头部信息的内容时会出错。因此,要确保返回的内容包含 text/xml 信息。
http_request = new XMLHttpRequest();
http_request.overrideMimeType(’text/xml’);
2、指定响应处理函数
接下来要指定当服务器返回信息时客户端的处理方式。只要将相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性就可以了。
比如:adystatechange = processRequest;需要指出的时,这个函数名称
不加括号,不指定参数。也可以用Javascript 即时定义函数的方式定义响应函数。比如:http_request. onreadystatechange = function() {};
3、发出HTTP请求
指定响应处理函数之后,就可以向服务器发出HTTP请求了。这一步调用XMLHttpRequest对象的open和send方法。
http_request.open(’GET’, ’http:///some.file’, true);
http_request.send(null);
open 的第一个参数是 HTTP 请求的方法,为 Get、Post 或者Head。
open 的第二个参数是目标URL。基于安全考虑,这个URL只能是同网域的,否则会提示“没有权限”的错误。这个URL可以是任何的URL,包括需要服务器解释执行的页面,不仅仅是静态页面。目标URL处理请求XMLHttpRequest请求则跟处理普通的HTTP 请求一样,比如ASP可以用request (”“)来取得 URL 参数值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论