文档库 最新最全的文档下载
当前位置:文档库 › ajax原理介绍

ajax原理介绍

ajax原理介绍
ajax原理介绍

ajax原理介绍

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

主要包含了以下几种技术

Ajax(Asynchronous JavaScript + XML)的定义

基于web标准(standards-based presentation)XHTML+CSS的表示;

使用 DOM(Document Object Model)进行动态显示及交互;

使用 XML 和 XSLT 进行数据交换及相关操作;

使用 XMLHttpRequest 进行异步数据查询、检索;

使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文。

类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式,derivative/composite)的技术正在出现,如“AFLAX”。

AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

与传统的web应用比较

传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。

与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

Ajax应用程序的优势在于:

1. 通过异步模式,提升了用户体验

2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

Ajax的工作原理

Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:

动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。

提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在某购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载整个页面的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。

直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done 之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。

一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。

Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间

及带宽租用成本的目的。

我们以两个验证通行证帐号是否存在的例子来讲述AJAX在实际中的应用:

(1)用文本字符串的方式返回服务器的响应来验证网易通行证帐号是否存在;

(2)以XMLDocument对象方式返回响应来验证金山通行证帐号是否存在;

首先,我们需要用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP 请求, XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类,不过它们创建XMLHttpRequest类的方法不同。

对于Internet Explorer浏览器,创建XMLHttpRequest 方法如下:

xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0

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

xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");

由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致,为了更好的兼容不同版本的Internet Explorer浏览器,因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类,上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法。

对于Mozilla﹑Netscape﹑Safari等浏览器,创建XMLHttpRequest 方法如下:xmlhttp_request = new XMLHttpRequest();

如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。

xmlhttp_request = new XMLHttpRequest();

xmlhttp_request.overrideMimeType('text/xml');

在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest 类的方法写成如下形式:

try{

if( window.ActiveXObject ){

for( var i = 5; i; i-- ){

try{

if( i == 2 ){

xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }

xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); } xmlhttp_request.setRequestHeader("Content-Type","text/xml");

xmlhttp_request.setRequestHeader("Content-Type","gb2312");

break;}

catch(e){

xmlhttp_request = false; } } }

else if( window.XMLHttpRequest )

{ xmlhttp_request = new XMLHttpRequest();

if (xmlhttp_request.overrideMimeType)

{ xmlhttp_request.overrideMimeType('text/xml'); } } }

catch(e){ xmlhttp_request = false; }

在定义了如何处理响应后,就要发送请求了。可以调用HTTP请求类的open()和send()方法,如下所示:

xmlhttp_request.open('GET', URL, true);

xmlhttp_request.send(null);

open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。

第二个参数是请求页面的URL。

第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。

用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求后,接下来要决定当收到服务器的响应后,需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名,如下所示:

xmlhttp_request.onreadystatechange =FunctionName;

FunctionName是用JavaScript创建的函数名,注意不要写成FunctionName(),当然我们也可以直接将JavaScript代码创建在onreadystatechange之后,例如:

xmlhttp_request.onreadystatechange = function(){

// JavaScript代码段

};

首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判

ready State的取值如下:

0 (未初始化)

1 (正在装载)

2 (装载完毕)

3 (交互中)

4 (完成)

所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。具体代码如下:

if (http_request.readyState == 4) { // 收到完整的服务器响应 }

else { // 没有收到完整的服务器响应 }

当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP 服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。

在检查完请求的状态值和响应的HTTP状态值后,就可以处理从服务器得到的数据了。有两种方式可以得到这些数据:

(1) 以文本字符串的方式返回服务器的响应

(2) 以XMLDocument对象方式返回响应

实例一:用文本字符串的方式返回服务器的响应来验证网易通行证帐号是否存在

首先,我们登陆网易通行证注册页面,可以看到检测用户名是否存在是将用户名提交给checkssn.jsp页面进行判断,格式为:

https://www.wendangku.net/doc/008085015.html,/register/checkssn.jsp?username=用户名

根据上面讲到的方法,我们可以利用AJAX技术对网易通行证用户名进行检测:

第一步:新建一个基于Xhtml标准的网页,在区域插入Javascript函数如下:

function getXMLRequester( )

{ var xmlhttp_request = false;

try{

if( window.ActiveXObject ){

for( var i = 5; i; i-- ){

try{

if( i == 2 )

{ xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); } else

{ xmlhttp_request = new ActiveXObject

( "Msxml2.XMLHTTP." + i + ".0" );

xmlhttp_request.setRequestHeader("Content-Type","text/xml");

xmlhttp_request.setRequestHeader("Content-Type","gb2312"); }

break;}

catch(e){ xmlhttp_request = false; } } }

else if( window.XMLHttpRequest )

{ xmlhttp_request = new XMLHttpRequest();

if (xmlhttp_request.overrideMimeType)

{ xmlhttp_request.overrideMimeType('text/xml'); } } }

catch(e){ xmlhttp_request = false; }

return xmlhttp_request ; }

function IDRequest(n) { //定义收到服务器的响应后需要执行的

JavaScript函数

url=n+document.getElementById('163id').value;//定义网址参数

xmlhttp_request=getXMLRequester();//调用创建XMLHttpRequest的

函数

xmlhttp_request.onreadystatechange = doContents;//调用doContents函数

xmlhttp_request.open('GET', url, true);

xmlhttp_request.send(null); }

function doContents()

{ if (xmlhttp_request.readyState == 4) {// 收到完整的服务器响应

if (xmlhttp_request.status == 200) {//HTTP服务器响应的值OK

document.getElementById('message').innerHTML =

xmlhttp_request.responseText;

//将服务器返回的字符串写到页面中ID为message的区域 }

else { alert(http_request.status); } } }

在区域建立一个文本框,id为163id,再建一个id为messsge的空白区域用来显示返回字符串(也可以通过Javascript函数截取一部分字符串显示):

这样,一个基于AJAX技术的用户名检测页面就做好了,不过这个页面将返回服务器响应生成页面的所有字符串,当然还可以对返回的字符串进行一些操作,便于应用到不同的需要当中。

实例二:以XMLDocument对象方式返回响应来验证金山通行证帐号是否存在

在上面的例子中,当服务器对HTTP请求的响应被收到后,我们会调用请求对象的reponseText属性。该属性包含了服务器返回响应文件的内容。现在我们以XMLDocument对象方式返回响应,此时将不再需要reponseText属性而使用responseXML属性。

首先登陆金山通行证注册页面,我们发现金山通行证用户名的检测方式为: https://www.wendangku.net/doc/008085015.html,/ksgweb/jsp/login/uid.jsp?uid=用户名,并且返回XML数据:

isExistedUid -2

当result值为-1时表示此用户名已被注册,当result值为-2时表示此用户名尚未注册,因此通过对result值的判断可以知道用户名是否被注册。

对上例代码进行修改:

首先找到

document.getElementById('message').innerHTML=

xmlhttp_request.responseText;

改为:

var response = xmlhttp_request.responseXML.documentElement;

var result =

response.getElementsByTagName('result')[0].firstChild.data;//返回result节点数据

if(result ==-2){

document.getElementById('message').innerHTML = "用户名

"+document.getElementById('163id').value+"尚未注册";}

else if(result ==-1){

document.getElementById('message').innerHTML = "对不起,用户名"+document.getElementById('163id').value+"已经注册";}

通过以上两个实例说明了AJAX的客户端基础应用,采用的是网易和金山现成的服务器端程序,当然为了开发合适自己页面的程序,还需要对自己编写服务器端程序,这设计到程序语言及数据库的操作,对于有一定程序基础的读者一定不是很难的事情。

Spring 使用Properties配置文件

文章分类:Java编程

1. jdbc.properties

database.url=jdbc:mysql://localhost/smaple

database.driver=org.gjt.mm.mysql.Driver

https://www.wendangku.net/doc/008085015.html,er=root

database.password=star1xing

2.conf.xml

"https://www.wendangku.net/doc/008085015.html,/dtd/spring-beans.dtd">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigur er">

com/starxing/test/jdbc.properties

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

${database.url}

${database.driver}

${https://www.wendangku.net/doc/008085015.html,er}

${database.password}

3.Config.java

package com.starxing.test;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.FileSystemResource;

import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class Config {

public static void main(String[] args) {

XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource(

"com/starxing/test/conf.xml"));

// 如果要在BeanFactory中使用,bean factory post-processor必须手动运行: PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer(); cfg.setLocation(new FileSystemResource(

"com/starxing/test/jdbc.properties"));

cfg.postProcessBeanFactory(factory);

DriverManagerDataSource dataSource = (DriverManagerDataSource) factory .getBean("dataSource");

System.out.println(dataSource.getDriverClassName());

// 注意,ApplicationContext能够自动辨认和应用在其上部署的实现了BeanFactoryPostProcessor的bean。这就意味着,当使用ApplicationContext的时候应用PropertyPlaceholderConfigurer会非常的方便。由于这个原因,建议想要使用这个或者其他bean

// factory postprocessor的用户使用ApplicationContext代替BeanFactroy。

ApplicationContext context = new ClassPathXmlApplicationContext(

"com/starxing/test/conf.xml");

DriverManagerDataSource dataSource2 = (DriverManagerDataSource) context .getBean("dataSource");

System.out.println(dataSource2.getDriverClassName());

}

}

相关文档:

--------------------------------------------------------------------------------

使用这一解决方案,我们可以生成如下的属性文件(/WEB-INF/jdbc.properties):

jdbc.driver=org.postgresql.Driverjdbc.url=jdbc:postgresql://localhost/testjdbc. user=postgresjdbc.password=

我们的Bean配置如下:

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> /WEB-INF/jdbc.properties

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

${jdbc.driver}

${jdbc.url}

${https://www.wendangku.net/doc/008085015.html,er}

${jdbc.password}

如上所述,我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属

性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属

性来代替所有的占位符(${...}value)。

利用这种技术,我们可以从applicationContext.xml中移除所有特定于主机的配置属

性。通过这种方式,我们可以自由地为该文件添加新的Bean,而不必担心特定于主机属性的

同步性。这样可以简化生产部署和维护。

-------------------------------------------------------------------------------

-

PropertyPlaceholderConfigurer作为一个bean factory post-processor实现,可以用来将BeanFactory定义中的属性值放置到另一个单独的Java Properties格式的文件中。这使得用

户不用对BeanFactory的主XML定义文件进行复杂和危险的修改,就可以定制一些基本的属性(比如说数据库的urls,用户名和密码)。

考虑一个BeanFactory定义的片断,里面用占位符定义了DataSource:

在下面这个例子中,定义了一个datasource,并且我们会在一个外部Porperties文件中配置

一些相关属性。在运行时,我们为BeanFactory提供一个PropertyPlaceholderConfigurer,

它将用Properties文件中的值替换掉这个datasource的属性值:

destroy-method="close">

name="driverClassName">${jdbc.driverClassName}

${jdbc.url}

name="username">${https://www.wendangku.net/doc/008085015.html,ername}

name="password">${jdbc.password}

真正的值来自于另一个Properties格式的文件:

jdbc.driverClassName=org.hsqldb.jdbcDriverjdbc.url=jdbc:hsqldb:hsql://productio n:https://www.wendangku.net/doc/008085015.html,ername=sajdbc.password=root

如果要在BeanFactory中使用,bean factory post-processor必须手动运行:

XmlBeanFactory factory = new XmlBeanFactory(new

FileSystemResource("beans.xml"));PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();cfg.setLocation(new

FileSystemResource("jdbc.properties"));cfg.postProcessBeanFactory(factory); 注意,ApplicationContext能够自动辨认和应用在其上部署的实现了BeanFactoryPostProcessor的bean。这就意味着,当使用ApplicationContext的时候应用PropertyPlaceholderConfigurer会非常的方便。由于这个原因,建议想要使用这个或者其他bean factory postprocessor的用户使用ApplicationContext代替BeanFactroy。

PropertyPlaceHolderConfigurer不仅仅在你指定的Porperties文件中查找属性,如果它在其中没有找到你想使用的属性,它还会在Java的系统properties中查找。这个行为能够通过设置配置中的systemPropertiesMode 属性来定制。这个属性有三个值,一个让配置总是覆盖,一个让它永不覆盖,一个让它仅在properties文件中找不到的时候覆盖。请参考PropertiesPlaceholderConfigurer的JavaDoc获得更多信息。

ajax原理介绍

ajax原理介绍 AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 主要包含了以下几种技术 Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索; 使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式,derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。 与传统的web应用比较 传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

Ajax实现原理

Ajax实现原理 Ajax的工作 Ajax直觉认识:我们发送一个请求,但是这个请求比较特殊它是异步的,也就是说客户端是不会感觉到的。在发送这个请求的时候我们绑定了一个事件,这个事件会监控我们发送请求的状态,并且每次状态改变都会触发,所以我们就可以根据不同的状态让他执行不同的操作。请求到达服务器端的后服务器端根据相应的请求返回对应的信息,这个返回信息我们可以取得并且是异步得到,不会引起客户端刷新。既然在上面已经绑定了监控状态变化的事件,我们就可以在那里首先做好在得到返回信息要做的处理(当然如果失败也会有相应的状态我们也会做出相应的处理),我们在处理中得到返回信息通过javascript在客户端做相应操作即可。 Ajax核心—XMLHttpRequest 上面我们大概感受了一下Ajax的过程,我们发现发送异步请求才是核心,事实上它就是XMLHttpRequest,整个Ajax之所以能完成异步请求完全是因为这个对应可以发送异步请求的缘故。而且我们又发现上面那个事件就是整个处理过程的核心,可以根据不同状态执行不同操作,其实它就是XMLHttpRequest的方法onreadystatechange,它在每次状态发生改变时都会触发。那么是谁取得的返回信息呢?它就是XMLHttpRequest的另一个方法responseText(当然还有responseXML)。(⊙o⊙)哦,我们还没有说发送给谁以及执行发送操作,这两个就是XMLHttpRequest的open和send方法。Y(^o^)Y,其他的当然还有了,我们直接列出来吧:

代码实现 ajax.js文件代码,也是我们说的主要内容,是一个javascript文件,所有的Ajax操作都在这里: view plaincopy to clipboardprint? 1.//与服务器通信 2.function talktoServer(url) { 3. var req = newXMLHTTPRequst(); 4. var callbackHandler = getReadyStateHandler(req); 5. req.onreadystatechange = callbackHandler; 6. req.open("POST", url, true); 7. req.setRequestHeader("Content-Type", "application/x-www-form-urlen coded"); 8. var testmsg = document.getElementById("testmsg"); 9. var msg_value = testmsg.value; 10. req.send("msg="+msg_value); 11.} 12.//创建XMLHTTP对象 13.function newXMLHTTPRequst() { 14. var xmlreq = false; 15. if (window.XMLHttpRequest) { 16. xmlreq = new XMLHttpRequest(); 17. } else if (window.ActiveXobject) { 18. try{ 19. xmlreq=new ActiveXObject("Msxm12.XMLHTTP"); 20. } catch (e1) {

从后端向前端传递数据到ajax

1.创建Java工程 js 插件引入 highcharts.js jquery-1.8.3.min.js myjs.js 引入ajax 2.前端代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> My JSP 'index.jsp' starting page 服务端:

3. { 4. $.getJSON( 5. "https://www.wendangku.net/doc/008085015.html,/payment/payment/paytest?callback=?", 6. {id:1,name:"name"}, 7. function(jsondata){ 8. alert(jsondata.json); 9. }); 10. } 11. 12. 翻开jquery.的源码,一步步找: 13. 14. getJSON: function( url, data, callback ) { 15. return jQuery.get(url, data, callback, "json"); 16. } 17. 18. 再找JQuery.get 19. 20. get: function( url, data, callback, type ) { 21. // shift arguments if data argument was omited 22. 23. if ( jQuery.isFunction( data ) ) { 24. type = type || callback; 25. callback = data; 26. data = null; 27. } 28. 29. return jQuery.ajax({ 30. type: "GET", 31. url: url, 32. data: data, 33. success: callback, 34. dataType: type 35. }); 36. } 37.

面试分享|前端Ajax技术原理

面试分享|前端Ajax技术原理 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用: 使用XHTML+CSS来标准化呈现; 使用XML和XSLT进行数据交换及相关操作; 使用XMLHttpRequest对象与Web服务器进行异步数据通信; 使用Javascript操作Document Object Model进行动态显示及交互; 使用JavaScript绑定和处理所有数据。 2.与传统的web应用比较 传统的Web应用交互由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端, 每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于XML的Web Service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。 3.AJAX的工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。 Ajax其核心有JavaScript、XMLHTTPRequest、DOM对象组成,通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用JavaScript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。让我们来了解这几个对象。 (1).XMLHTTPRequest对象 Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无

ajax新手入门教程-适合初学者

初学者入门教程,来源于网络 AJAX 简介
AJAX 全称为“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML) ,是一种创 建交互式网页应用的网页开发技术。类似于 DHTML 或 LAMP,AJAX 不是指一种单一的技 术,而是有机地利用了一系列相关的技术。 AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用 程序的技术。通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来 直接与服务器进行通信。 通过这个对象, 您的 JavaScript 可在不重载页面的情况与 Web 服 务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求) ,这 样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更 小、更快,更友好。 AJAX 是一种独立于 Web 服务器软件的浏览器技术。AJAX 基于下列 Web 标准: ? ? ? ? JavaScript XML HTML CSS
在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用 程序独立于浏览器和平台。
1. AJAX 使用 Http 请求
在传统的 JavaScript 编程中,假如您希望从服务器上的文件或数据库中得到任何的信 息, 或者向服务器发送信息的话, 就必须利用一个 HTML 表单向服务器 GET 或 POST 数 据。而用户则需要单击“提交”按钮来发送/获取信息,等待服务器的响应,然后一张新的页 面会加载结果。由于每当用户提交输入后服务器都会返回一张新的页面,传统的 web 应用 程序变得运行缓慢,且越来越不友好。通过利用 AJAX,您的 JavaScript 会通过 JavaScript 的 XMLHttpRequest 对象,直接与服务器来通信。通过使用 HTTP 请求,web 页可向服务 器进行请求,并得到来自服务器的响应,而不加载页面。用户可以停留在同一个页面,他或 她不会注意到脚本在后台请求过页面,或向服务器发送过数据。 XMLHttpRequest 对象:通过使用 XMLHttpRequest 对象,web 开发者可以做到在页面 已加载后从服务器更新页面! 您的第一个 AJAX 应用程序:为了让您理解 AJAX 的工作原理,我们将创建一个小

Jsp数据库二级联动原理利用AJAX访问servlet来完成

数据库二级联动构思:利用AJAX访问servlet来完成 * 第一、父级列表由页面初始完成 * 并加上onchange="javascript:getData(this.value)"事件 * 注意:getData(obj)为AJAX访问servlet函数,具体见代码jslib/linkage.js * 第二、在servlet中返回数据时,要求采用XML,如: Java代码 复制代码 1. 2.String id = request.getParameter("id"); 3. String str = ""; 4. str = str + ""; 5. String name = ""; 6. if (id.trim().equals("1")){ 7. name = "项目A"; 8. } else if (id.trim().equals("2")){ 9. name = "项目B"; 10. }else if (id.trim().equals("3")){ 11. name = "项目C"; 12. } 13. for (int i = 0; i < 10; i++) { 14. //数据可以从数据库中读取 15. str = str + ""; 16. } 17. str = str + ""; 18. out.println(str); 19.

在线聊天手段在教学交互中的实现

在线聊天手段在教学交互中的实现 摘要:随着计算机与网络应用的普及使得人际交流更加方便快捷。由于传统教学方式在师生互动受教学时间、教学地点、教学方法等方面的限制,更注重课堂上的讲授,对于课余时间不能充分利用,一定程度上减少了教师与学生的交流互动,因此,必须寻求信息环境下新的交互手段(如手机通讯、网络)作为课堂教学的补充。可以说,在目前网络时代中,传统的知识传授过程已不再是唯一的教育过程,在信息环境中培养学生自主获取知识和运用知识能力的成为我们教育的一个主要目标。 本文通过开发“教学聊天室”,为网络教学交互提供一个支持平台。该系统以https://www.wendangku.net/doc/008085015.html,与SQL Server 2000数据库作为开发工具,实现教学在线交互。借助网络互动平台作为传统教学的补充,可以摆脱传统交互方式的时间和地点限制,增进师生间沟通,使教学交互方式更多样,教学资源更丰富。 关键词:在线交互;聊天室系统;https://www.wendangku.net/doc/008085015.html, The Realization of Online Chatting Means in Interactive Teaching Abstract:With popularization of computer and network application, the interpersonal communication becomes more convenient and fast. Since the restrictions of teaching time, the place of teaching and teaching methods in teacher-student interaction, the traditional teaching mode stresses more on classroom teaching, can not make full use of after-class time and reduces the teacher-student interaction at a certain extent. Therefore, a new interactive tool in information environment must to be seeked (such as mobile communications, networks) for the supplement of teaching in the class. It can be said that the traditional way of imparting knowledge is no longer the only educational process in the current era of network and developing students' ability to acquire and use knowledge in the information environment has become a major goal of our education. In this paper, through developing the "teaching Chatting Room", a supporting platform for network instruction interaction is provided. The system realizes the online teaching interaction by using https://www.wendangku.net/doc/008085015.html, and SQL Server 2000.Thanks for the supplement of network interaction platform, the limit of time and place in the traditional teaching will be broken, the teacher-student interaction will be enhanced, the teaching interactive way will be diversified and the teaching resources will be enriched. Key words:Online interactive; Chatting room system; https://www.wendangku.net/doc/008085015.html,

ajax面试题

1. 什么是ajax,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么是ajax: AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。 Ajax包含下列技术: 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用DOM(Document Object Model)进行动态显示及交互; 使用XML 和XSLT 进行数据交换及相关操作; 使用XMLHttpRequest 进行异步数据查询、检索; 使用JavaScript 将所有的东西绑定在一起。 为什么要用ajax:Ajax应用程序的优势在于: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。 2. Ajax的最大的特点是什么。 Ajax可以实现动态不刷新(局部刷新) 就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 3. 请介绍一下XMLHTTPREQUEST对象? Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。 4. Ajax技术体系的组成部分有哪些?

相关文档