Ajax学习中的一些总结
来源:互联网 发布:金融电子化公司 知乎 编辑:程序博客网 时间:2024/06/16 10:31
Ajax技术 异步交互技术特点:异步交互 局部刷新Ajax四种关键技术1、javaScript 通用的脚本语言,嵌入某种应用中,web浏览器嵌入的javascript解释器允许浏览器的很多内建功能进行交互,Ajax应用是使用JavaScript编写的2、css 层叠式样式表css为web页面元素 提供了一种可用的可视化样式定义的方法,他提供了简单而又强大的方法,以一致的方法定义和使用可视化样式,在Ajax应用中 用户界面样式可以通过css独立修改3、Dom文档对象模型Dom以一组可以使用javascript操作的可编程对象展现出web页面的结构 通过使用脚本修改Dom Ajax应用程序可以在运行时改变用户界面,或者高效的重绘页面中某个部分4、XmlHttpRequest对象 xmlhttprequest对象允许web程序员,从web服务器以后台的活动方式获取数据,数据格式通常是xml 但是也很好的支持文本数据格式。尽管xmlhttprequest对于完成这种工作,说是最为灵活和通用的工作,但还是其他方法也可以从服务器获取数据。5、xmlHttpRequest xmlHttpRequest最早在IE5以AtiveX(网络化多媒体对象技术),而其他浏览器支持Active对象,就可以使用Active来创建XmlHttpRequest对象,否则就要使用本地javaScript对象技术来创建该对象。6、XMlHttpREquest对象相关操作和方法 异步操作步骤 1、创建XmlHttpRequest对象 2、建立与服务器端的连接 3、发送数据send() 4、获取相应信息onreadystatechange xmlHttp.readyState==4 xmlHttp.status==200 5、获取内容 xmlHttp.responseText; 或responseXML ①创建XMLHttpRequest对象的代码 本地浏览器是否支持ActiveX对象 ,返回对象为true,返回null为false var xmlHttp; function createXMLHTTPRequest(){ //本地浏览器是否支持xmlHttprequest对象 if(window.XMLHttpRequest(){ //Mozilla浏览器(将xmlhttp作为本地浏览器来创建) xmlHttp = new XMLHttpRequest(); }else if(window.ActiveXObject){ //IE浏览器(将XMLHTTPRequest作为Active对象来创建) xmlHttp = new ActiveXObject(""Microsoft.XMLHTTP); } if(xmlHTTP==null){ alert("不能创建XMLHTTPRequest对象"); return false; } } ②XMLHTTPRequest对象的方法和属性 a、abort() 停止当前请求 b、getAllResponseHeaders() 把HTTP请求的所有响应首部作为键值对返回 c、getResponseHeader("header") 返回指定首部的串值 d、void open(String method,String url,boolean asynch) 建立对服务器的调用,method参数可以是get、post或者put url参数可以是相对url或者绝对url,参数asynch来指示调用。 采用的是同步还是异步,默认为true 采用异步调用,否则为false 处理就会等待知道服务器返回响应为止 e、void send(content) 向服务器发送异步请求,如果请求是异步的,这个方法就会立即返回,否则 他会等待直到接受到服务器的返回响应为止。 输入的content可以是DOM的实例对象、输入流或者字符串, 传入这个方法的内容作为请求体的一部分发送。若send(null)则请求为空 f、void setRequestHeader(String header,String value)这个方法为Http请求中一个给定的首部字段设置值,这个方法必须在调用open()方法之后才能调用。 g、onreadystatechange 每次XMLHttpRequest对象的状态改变时都会触发这个事件处理器,这个事件处理器通常会调用一个JAvaScript函数取执行相关的代码 h、readyState XMLHttpRequest对象的状态变化 0(未初始化) 新的XMLHttpRequest兑现实例已建立,但是尚未初始化(尚未调用open方法) 1、正在加载 新的XMLHttpRequest对象实例已建立 尚未调用send方法。 2、已经加载 send方法已调用,但是当前的response状态未知 3、交互中 客户端已接受部分response中的信息,但是没有全部接受,这时通过responseXML或者responseText获取部分数据 4、完成 数据接收完毕 此时可以通过responseXML或者responseText获取完整的应答信息。 i、status 服务器的http状态码 200=ok 404 not found IE1223 FireFox 204服务器没有信息返回 j、responseText 服务器的响应,表示为一个web文本内容 k、responseXML 服务器的响应,表示为一个xml文档 l、statusText HTTP状态码的相应文本(ok、或者/NOT found) 3、请求返回到浏览器 Content-Type设置为text/xml,XMLHttpRequest对象只能处理text/html的结果 在另一些复杂的示例中,响应可能涉及更广,还包括JAVascript、DOM管理以及其他相关技术, response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); 4、回调函数 对于XMLHTTP对象,onreadystatechang属性存储了回调函数的指针。当XMLHttpRequest对象的内部状态发生变化时,就会调用这个回调函数 function ajaxCallBack(){ if(xmlHttpRequest.readyStatu==4) if(xmlHttpRequest.status==200){ //拿到接受好的数据 //进行局部刷新 } } 5、常用提交方式 a、post xmlHTTP.open("POST",url,true); xmlHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xmlHttp.onreadystatechange=ajaxCallback; xmlHttp.send("name="+str); 注意 此时parameter在请求体中 b、get xmlHttp.open("get",url,true); xmlHTTP.onreadystatechange=ajaxCallback; xmlHttp.send(null); 6、使用innerHTML属性创建动态内容 它是一个非标准的属性,最早在IE中实现 这是一个简单的串,表示一组开始标记和结束 7、js中dom解析xml 例如 <message> <msg> </msg> </message> 常用的一些方法 //元素节点的名字 message[i].nodeName; //元素节点下面第一个节点的值/这个节点必须是文本节点 message[i].getAttribute("name"); //元素的属性集合 返回的集合里面放的是Attr类型的对象 message[i].attributes; 获得集合中的一个Attr对象 有name和value两个属性 可以查看属性名和值 message[i].attributes[i]; 获得元素下面所有直接子节点 message[i].childNodes; 元素节点中最后一个子节点 message[i].lastchold; 7.1处理XML文档的DOM元素属性 childNodes 返回当前所有子元素的数组 firstChild 返回当前元素的第一个下级子元素 lastChild 返回当前元素的最后一个子元素 nextSibling 返回紧跟在当前元素后面的元素 nodeValue 指定表示元素的读写属性 parentNode 返回元素的父节点 previousSibling 返回紧邻当前元素之前的元素 7.2 遍历XML文档的DOM元素方法 1、getElementById(id) 获取有指定唯一id属性值文档中的元素 2、getElementByTagName(name) 返回当前元素中指定标记名的子元素的数组 3、hasChildNodes() 返回一个布尔值指定元素是否有子元素 4、getAttribute(name) 返回元素的属性值,属性由name指定,如<option value="1"></option> getAttribute("value")返回1 7.3 动态创建内容所用的W3c DOM的属性和方法 1、document.createElement(name) 文档对象上createElement方法可以创建由tagName指定的元素。如果以串div作为方法参数,就会生成一个div元素 2、document.createTextNode(text) 文档对象的createTextNode方法会创建一个包含静态文本的节点。 3、<element>.appendChild(childNode) appendChild方法将指定的节点增加到当前元素的子节点列表 /作为一个新的子节点/例如可以增加一个option元素作为select元素的子节点 4、<element>.getAttribute(name) <element>.setAttribute(name,value) 这两个方法分别获得和设置元素中属性值 5、<element>.insertBefore(newNode,targetNode) 这个方法将节点 newNode作为当前元素的子节点 插入到targetNode元素前面 6、<element>.removeAttribute(name); 这个方法从元素中删除属性name 7、<element>.removeChild(newNode) 这个方法将删除子元素newNode 8、<element>.replaceChild(newNode,oldNode) 这个方法将节点oldNode替换为节点newNode 9、<element>.hasChildNodes() 这个方法返回一个布尔值,指定元素是否有子元素
阅读全文
0 0
- Ajax学习中的一些总结
- 学习过程中的一些总结
- vue学习中的一些总结
- 学习JSON、ajax中的一些问题
- $.ajax的一些总结
- $.ajax的一些总结
- $.ajax的一些总结
- $.ajax的一些总结
- 今日学习总结循环中的一些问题
- OC学习过程中的一些总结
- 互联网技术学习中的一些资源总结
- css学习过程中的一些总结
- Android学习中的一些总结(一)
- javascript学习过程中的一些总结
- 学习vuejs过程中的一些错误总结
- jQuery中的Ajax总结
- jquery 中的ajax总结
- 关于ajax的一些总结
- 关于机器视觉的备忘
- XSSFSheet对象的格式设置
- 【NOIP2017提高A组集训10.21】Dark
- 我的2018校招
- unity机器学习之unity和python环境搭建
- Ajax学习中的一些总结
- Windows上Navicat工具远程连接PostgreSQL数据库
- QSqlQueryModel/QSqlTableModel 仅能获取256行的问题
- 【JZOJ5409】Fantasy
- Combinatorics——HDUOJ 1027
- aix中如何缩小默认的交换空间
- 095: 复习习题 求导题型 Case1:显函数求导;Case2:隐函数求导;Case3:参数方程确定的函数
- 最短路径算法 -Dijkstra算法
- SPOJTime Limit Exceeded 高维前缀和优化+ dp