ajax入门

什么是Ajax

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

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。

传统模式:等待——相应——等待

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

优势:

1:使用Javascript向服务器提出请求并处理响应而不阻塞用户!核心对象XMLHTTPRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。

2:AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

执行流程:

1:ajax引擎(XMLHttpRequest)为对象注册一个监听器(事件处理函数,对状态的改变事件(readyStatechange)监听)

2:等待用户执行操作(例如点击)

3:触发了事件处理代码

4:调用ajax引擎

5:发送请求,ajax引擎被调用后单独向服务器发送请求(不是整个界面)——异步请求

6:服务器接受到了处理请求--开始处理

7:服务器将处理结果(xml或者文本)返回给了ajax引擎

8:监听相应数据

9:监听器对GUI数据更新

ajax变成

1:

获得引擎XmlHttpRequest对象

注意点:ie与别的浏览器获得方式不同

function getXmlHttpRequest(){

var xhr=null;

if((typeof XMLHttpRequest)!=‘undefined‘){

xhr=new XMLHttpRequest();

alert(‘dom‘)

}else{

xhr=new ActiveXObject(‘Microsoft.XMLHttp‘);

alert(‘IE‘)

}

return xhr;

}

或者

function GetXmlHttpObject() {

var objXMLHttp = null;

if (window.XMLHttpRequest) {

objXMLHttp = new XMLHttpRequest();

} else if (window.ActiveXObject) {

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

}

return objXMLHttp;

}

案例1:测试XMLHttpRequest

重要参数:

onreadystatechange——注册一个监听器(绑定时间处理函数)

readyState返回与服务器通讯状态码Number类型

0对象创建,但是没有初始化

1对象建立但是没有调用

2发送数据(send方法被调用)

3数据传送中

4响应结束

responseText——服务器返回的文本

responseXML——服务器返回的xml dom对象

status 获得状态码

案例1使用get方式提交,验证用户姓名

网页:

<form id="form1" action="http://127.0.0.1:9000" method="post">

姓名:<input type="text" name="name" id="name" onblur="check_name()"><span id="err"></span><br/>---验证

密码:<input type="password" name="pwd"><br/>

<input type="submit" value="提交">

</form>

js:

function check_name(){

var name=document.getElementById("name").value;

var xhr=getXmlHttpRequest();

//注册监听器

xhr.onreadystatechange=function(){

//处理服务器返回的数据

if(xhr.readyState == 4){

//xhr的状态值必须是4,才能正确接收

//到服务器返回的数据。

if(xhr.status == 200){

//ok

var txt = xhr.responseText;

//dom操作:更新页面

document.getElementById("err").innerHTML=txt;

}else{

//error

document.getElementById("err").innerHTML = ‘系统出错‘;

}

}

}

//step2 发送请求

xhr.open(‘get‘,‘checkName?name=‘+name,true);

//发送请求

xhr.send(null);

}

后台服务器

var express=require(‘express‘);

var app=express();

app.listen(9000,‘localhost‘)

app.get(‘/login.html‘,function(req,res){

res.sendfile(‘./login.html‘)

})

app.get(‘/checkName?:name‘,function(req,res){

//console.log(req.query.name)——获得了参数(注意是什么接受的)补充1

if(req.query.name==‘zhangsan‘){

res.send(‘已经被使用‘)

}else{

res.send(‘已经被使用‘);

}

})

这里有个坑,自己去玩,后边讲,如果你已经写到这里了,保重~~~~

127.0.0.1:3000/index?id=12,这种情况下,这种方式是获取客户端get方式传递过来的值,通过使用req.query.id就可以获

127.0.0.1:300/index,然后post了一个id=2的值,这种方式是获取客户端post过来的数据,可以通过req.body.id获取

post方式ajax检测用户名

js:

function check_name(){

var name=document.getElementById("name").value;

var xhr=getXmlHttpRequest();

//step2 发送请求

xhr.open(‘post‘,‘checkName‘,true);

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

//注册监听器

xhr.onreadystatechange=function(){

if(xhr.readyState==4){

if(xhr.status==200){

var txt=xhr.responseText;

document.getElementById("err").innerHTML=txt;

}

}

}

//发送请求

xhr.send("name="+name);

}

比较一下有什么不同

nodejs:

var express=require(‘express‘);

var app=express();

var querystring=require(‘querystring‘)

app.listen(9000,‘localhost‘)

app.get(‘/login.html‘,function(req,res){

res.sendfile(‘./login.html‘)

})

app.post(‘/checkName‘,function(req,res){

req.on(‘data‘,function(data){

var obj=querystring.parse(data.toString());

if(obj.name==‘zhangsan‘){

res.send(‘名字被占用了‘)

}else{

res.send(‘可以使用啊‘)

}

})

})

时间: 2024-10-31 19:05:01

ajax入门的相关文章

AJAX入门--- XMLHttpRequest对象的属性和方法

由于刚刚接触到Ajax对其比较陌生,而其中的XMLHttpRequest对象更是未曾听闻.开始学之前,了解一下它的属性和方法为它的使用做下铺垫.本文重点介绍XMLHttpRequest的属性和方法. XMLHttpRequest对象的属性和事件 属性 描述 readyState 表示XMLHttpRequest对象的状态[1] responseText 包含客户端接收到的HTTP相应的文本内容[2] responseXML 服务器响应的XML内容对应的DOM对象[3] status 服务器返回h

Ajax 入门笔记

AJAX =Asynchronous Javascript + XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. XMLHttpRequest 是 AJAX 的基础.XMLHttpRequest 用于在后台与服务器交换数据.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 1:创建 XMLHttpRequest 对象 为

Ajax入门学习原始代码

<script type="text/javascript">        window.onload = function () {            //1.创建xmlhttprequest对象            var xhr = createXHR();            function createXHR() {//为了兼容新老IE的版本                var request;                if (typeof(X

ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel

ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel 本文简单介绍一下在母版页中使用UpdatePanel控件,翻译自官方文档. 主要内容 1.添加UpdatePanel控件到Content Page 2.通过Master Page刷新UpdatePanel 一.添加UpdatePanel控件到Content-Page 1.添加一个新的Master Page,并切换到设计视图. 2.在工具箱中AJAX Extensions标签下双击ScriptManager控件添加到页面

ASP.NET AJAX入门系列(8):自定义异常处理

ASP.NET AJAX入门系列(8):自定义异常处理 在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. 主要内容 1.在服务端自定义异常处理 2.在客户端脚本中自定义异常处理 一.在服务端自定义异常处理 1.添加ASPX页面并切换到设计视图. 2.在工具箱中AJAX Extensions标签下双击ScriptManager和UpdatePane

ASP.NET AJAX入门系列

ASP.NET AJAX入门系列将会写关于ASP.NET AJAX一些控件的使用方法以及基础知识,其中部分文章为原创,也有一些文章是直接翻译自官方文档,本部分内容会不断更新. 目录 ASP.NET AJAX入门系列(1):概述 导读:作为本系列文章的开篇,简单介绍一下ASP.NET AJAX的概况及各个组成部分. ASP.NET AJAX入门系列(2):使用ScriptManager控件 导读:ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处

AJAX入门---五步使用XMLHttpRequest对象

XMLHttpRequest简介: XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页.当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据.XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力.XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容.尽管名为 XM

AJAX入门---点滴的积累

AJAX入门---点滴的积累 每次学习完一个内容总会写上几句话总结一下学习的内容.这不刚看完王兴魁老师讲的AJAX核心技术.如今回想梳理一下. 这套视频的内容不多,简单的解说了XMLHttpRequest技术,DOM及其操作HTML.XML,一些Javascript的知识.再通过两个综合性的样例收尾. XMLHttpRequest对象 关于该对象的具体含义,怎样使用能够看看我之前写的博客--<AJAX入门--- XMLHttpRequest对象的属性和方法>和<AJAX入门---五步使用

ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新.通过本文来学习一下UpdatePanel简单的使用方法(第一篇). 主要内容 1.UpdatePanel控件概述 2.UpdatePanel工作原理 3.ContentTemplate属性 4.ContentT

ASP.NET AJAX入门系列(1):概述

经常关注我的Blog的朋友可能注意到了,在我Blog的左边系列文章中,已经移除了对Atlas学习手记系列文章的推荐,因为随着ASP.NET AJAX 1.0 Beta版的发布,它们已经不再适用,为了不继续误导广大朋友,所以不再作为推荐系列文章,如果有需要参考的朋友,可以直接到随笔分类中查看. ASP.NET AJAX Beta改动如此之大,鉴于又没有很好的中文参考资料,所以决定最近开始写作ASP.NET AJAX入门系列,这个系列我会把ASP.NET AJAX当作一个全新的东西去对待,不再考虑以