这篇文章主要围绕AJAX入门和ajax入门看这一篇就够了展开,旨在为您提供一份详细的参考资料。我们将全面介绍AJAX入门的优缺点,解答ajax入门看这一篇就够了的相关问题,同时也会为您带来AJAX入门
这篇文章主要围绕AJAX入门和ajax入门看这一篇就够了展开,旨在为您提供一份详细的参考资料。我们将全面介绍AJAX入门的优缺点,解答ajax入门看这一篇就够了的相关问题,同时也会为您带来AJAX入门 之 使用 AJAX 修改页面文本内容(四)、AJAX入门---AJAX操作HTML、AJAX入门2、AJAX入门3-AJAX开发步骤的实用方法。
本文目录一览:AJAX入门(ajax入门看这一篇就够了)
Ajax是浏览器端的异步刷新。只是局部更新。使得网络慢的时候用户不会等太久。
步骤(例子):
步骤:
1:var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
//IE浏览器实例化 "Msxml2.XMLHTTP"对象
2:xmlHttp.open("GET","true");
//异步提交的目标和方法
3:xmlHttp.onreadystatechange() = function(){
//xmlHttp状态改变时,进行处理代码
4: if(xmlHttp.readyState==4){
//xmlHttp.readyState 有0~4 5种状态
0:未初始化状态,未调用open()
1:已经初始化状态,已经调用open()
2:发送数据状态,调用send()以后
3:数据传送中状态,已经接受部分,但是没有接受完成
4:完成状态,数据接受完成
div1.innerHTML = xmlHttp.responseText;
//xmlHttp.responseText 是从目标提取出来的文本内容
}
5:xmlHttp.send();
}
AJAX入门 之 使用 AJAX 修改页面文本内容(四)
<html> <head> <script> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+,Firefox,Chrome,Opera,Safari // XMLHttpRequest对象:用来实现异步通讯的组件对象,是Ajax的核心技术 xmlhttp=new XMLHttpRequest(); } else {// code for IE6,IE5 // 初始化 XMLHttpRequest 对象 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { // HTTP 请求的状态,只能有5个可选的值 // 0 = uninitialized,1 = loading,2 = loaded,3 = interactive,and 4 = complete. // 最重要的是readyState==4, 这时请求响应才真正完成,可以进行数据的操作。 // 这个在HTTP响应中的响应码,200代表响应成功。 if (xmlhttp.readyState==4 && xmlhttp.status==200) { // 该属性代表的是从Server端返回的一个string格式的响应。 document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } // 该方法会建立对服务器的调用,但并不会真正发送,只是准备. // 前两个参数是必须的,分别代表HTTP请求方法和所调用资源的URL // 第三个是一个 boolean值,默认true,代表请求异步. // 如果为false,前端浏览器对于用户响应的处理就会等待,直到从服务器返回响应为止。 // 异步调用是AJAX的优势之一,本次传到前台的文件为 ajax_info.txt 。 xmlhttp.open("GET","/try/ajax/ajax_info.txt",true); // send 这个方法才是真正发送请求,如果上面的第三个参数设置为ture, 那么调用完后会立即返回, // 如果为 false 就会直到接收到响应才返回,但这并不会影响回调函数的多次执行, // 因为浏览器后台也是多线程的,同步只会阻止前端页面的响应。 xmlhttp.send(); } </script> </head> <body> <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div> <button type="button" onclick="loadXMLDoc()">修改内容</button> </body> </html>
AJAX入门---AJAX操作HTML
AJAX入门---DOM操作HTML
一边学习AJAX一边坐着总结加深印象,上次写的是如何简单的使用XMLHttpRequest对象,今天写的是DOM(文档对象模型(Document Object Model))操作HTML,希望我的博客对大家的学习能够起到帮助作用。
一.什么是DOM
文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。
二.简单的操作HTML
今天的例子实现前我们先需要了解DOM的常用节点和常用API,例子中通过动态的向HTML中添加元素节点达到学习的目的。
最终效果
添加节点实现
- //添加节点
- varindex=0;
- functionappendnode(){
- //找到body对应节点
- varhtmlNode=document.documentElement;
- varbodyNode=htmlNode.lastChild;
- //新建节点
- vardivNode=document.createElement("div");
- vartextNode=document.createTextNode("我是一个新加入的节点"+index++);
- //建立节点之间的关系
- divNode.appendChild(textNode);
- bodyNode.appendChild(divNode);
- }
插入节点实现
- //插入节点
- functioninsertnode(){
- varremovenode=document.getElementById("remove");
- varfirstdivnode=removenode.nextSibling;
- while(firstdivnode){
- if(firstdivnode&&firstdivnode.nodeName=="DIV"){
- varnewnode=document.createElement("div");
- vartextnode=document.createTextNode("我是一个新加入的节点"+index++);
- newnode.appendChild(textnode);
- document.documentElement.childNodes[2].insertBefore(newnode,firstdivnode);
- break;
- }
- firstdivnode=firstdivnode.nextSibling;
- }
- }
移除节点实现
- functionremovenode(){
- //1.找到body
- //2.找到需要被移除的那个div
- //3.调用remove方法移除节点
- varbodynode=document.getElementById("remove").parentNode;
- varremovenode=document.getElementById("remove");
- varfirstdivnode=removenode.nextSibling;
- while(firstdivnode){
- if(firstdivnode&&firstdivnode.nodeName=="DIV"){
- bodynode.removeChild(firstdivnode);
- break;
- }
- firstdivnode=firstdivnode.nextSibling;
- }
- }
总结
总记得以前有位老师总是在班里提醒“好记性不如烂笔头”,诚然编程有何尝不是这样,自己实现一遍抵得上自己看千万遍源码。需要完整的demo您可以通过下载免费源码获取(http://download.csdn.net/detail/senior_lee/7714311)
AJAX入门2
AJAX包含的技术
AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、HTML和CSS、DOM、XML和XMLHttpRequest.
AJAX的缺陷
AJAX不是完美的技术。也存在缺陷:
1 AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、netscape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。
所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。
2 AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。
3 对流媒体的支持没有FLASH好。
4 一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。
XMLHttpRequest对象
XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。
XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的。非W3C标准。
创建XMLHttpRequest对象(由于非标准所以实现方法不统一)
方式一:try{}catch(){}
1 function createXHR(){ 2 var xhr; 3 try{ //Firefox,Opera,Safari 4 xhr=new XMLHttpRequest(); 5 }catch (e){ 6 try{//IE 7 xhr=new ActiveXObject("Microsoft.XMLHTTP"); 8 }catch (e){} 9 } 10 } 11 return xhr; 12 }
方式二:if(){}else{}
1 function createXMR(){ 2 var xhr = null; 3 // 1、如果是IE 4 if(window.ActiveXObject){ 5 xhr = new ActiveXObject("microsoft.xmlhttp");//固定写法 6 }else{//如果非IE 7 xhr = new XMLHttpRequest(); 8 } 9 return xhr; 10 }
发送请求--方法和属性介绍
1)onreadystatechange
2)open(method,url,asynch)-XMLHttpRequest 对象的 open 方法允许程序员用一个Ajax调用向服务器发送请求。
•method:请求类型,类似 “GET”或”POST”的字符串。若只想从服务器检索一个文件,而不需要发送任何数据,使用GET(可以在GET请求里通过附加在URL上的查询字符串来发送数据,不过数据大小限制为2000个字符)。若需要向服务器发送数据,用POST。
varurl="GetAndPostExampletimeStamp="+newDate().getTime();
•url:路径字符串,指向你所请求的服务器上的那个文件。可以是绝对路径或相对路径。
•asynch:表示请求是否要异步传输,默认值为true(异步)。指定true,在读取后面的脚本之前,不需要等待服务器的相应。指定false,当脚本处理过程经过这点时,会停下来,一直等到Ajax请求执行完毕再继续执行。
3)send(data)
•若选用的是 GET 请求,则不会发送任何数据, 给 send 方法传递 null 即可:request.send(null);
•当向send()方法提供参数时,要确保open()中指定的方法是POST,如果没有数据作为请求体的一部分发送,则使用null.
•完整的 Ajax 的 GET 请求示例:
接收--方法和属性介绍
用 XMLHttpRequest 的方法可向服务器发送请求。在 Ajax 处理过程中,XMLHttpRequest 的如下属性可被服务器更改:
1)readyState
readyState 属性表示Ajax请求的当前状态。它的值用数字代表
每次 readyState值的改变,都会触发 readystatechange事件
•如果把 onreadystatechange 事件处理函数赋给一个函数,那么每次 readyState 值的改变都会引发该函数的执行。
•readyState 值的变化会因浏览器的不同而有所差异。但是,当请求结束的时候,每个浏览器都会把 readyState 的值统一设为 4
2)status
•服务器发送的每一个响应也都带有首部信息。三位数的状态码是服务器发送的响应中最重要的首部信息,并且属于超文本传输协议中的一部分。
3)responseText
4)responseXML
AJAX开发步骤及详解
1)创建ajax_1.html或ajax_1.jsp 2)添加事件 3)在事件响应后创建Ajax引擎对象 4)异步发送请求 5)将响应结果放入Ajax引擎对象中 6)从Ajax引擎对象中取得响应结果 7)使用DOM和JS将响应结果动态添加到Html或Jsp面页中 8)对于POST请求,一定要设置请求头,代码如下: xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");在open()之后,在send()之前对于GET请求,无需设置请求头
AJAX入门3-AJAX开发步骤
AJAX开发框架
AJAX实质上也是遵循B/S模式,所以这个框架基本的流程是:
只不过这个过程是异步的。
A、初始化XMLHttpRequest对象
1 function createXHR(){ 2 var xhr; 3 try{ //Firefox,Opera,Safari,。。。 4 xhr=new XMLHttpRequest(); 5 }catch (e){ 6 try{//IE 7 xhr=new ActiveXObject("Microsoft.XMLHTTP"); 8 }catch (e){} 9 } 10 } 11 return xhr; 12 }
B、指定响应处理函数
XMLHttpReq.onreadystatechange = processResponse;
XMLHttpReq.onreadystatechange = function() { };
// 处理返回信息的函数
function processResponse() {
}
C、发出HTTP请求
HTTP_Request.open('GET','http://www.example.org/some.file',true);
HTTP_Request.send(null)
这时资料则以查询字符串的形式列出,作为send的参数,例如:
name=value&anothername=othervalue&so=on
D、处理服务器返回的信息
处理响应处理函数都应该做什么。
1 首先,它要检查XMLHttpRequest对象的readyState值,判断请求目前的状态。参照前文的属性表可以知道,readyState值为4的时候,代表服务器已经传回所有的信息,可以开始处理信息并更新页面内容了。如下: 2 if (HTTP_Request.readyState == 4) { 3 // 信息已经返回,可以开始处理 4 } else { 5 // 信息还没有返回,等待 6 } 7 服务器返回信息后,还需要判断返回的HTTP状态码,确定返回的页面没有错误。所有的状态码都可以在W3C的官方网站上查到。其中,200代表页面正常。 8 if (HTTP_Request.status == 200) { 9 // 页面正常,可以开始处理信息 10 } else { 11 // 页面有问题 12 }
E、动态显示信息
数据格式提要
在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:
解析 HTML
HTML 由一些普通文本组成。如果服务器通过 XMLHttpRequest发送 HTML, 文本将存储在 responseText属性中。
插入 HTML 代码最简单的方法是更新这个元素的 innerHTML属性。
HTML 小结
XML小结
JSON 小结
HTML/XML/JSON对比小结
关于AJAX入门和ajax入门看这一篇就够了的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AJAX入门 之 使用 AJAX 修改页面文本内容(四)、AJAX入门---AJAX操作HTML、AJAX入门2、AJAX入门3-AJAX开发步骤等相关知识的信息别忘了在本站进行查找喔。
本文标签: