ajax积累

来源:互联网 发布:外商支付软件开发费 编辑:程序博客网 时间:2024/05/22 01:35

原创文章,鼓励转载,请务必注明出处,作者:李佳

积累:
1、DHTML(Dynamic HTML)
结合了HTML、CSS、JavaScript 和 DOM。

2、标准XMLHttpRequest操作
abort() 停止当前请求
getAllResponseHeaders() 把HTTP请求的所有响应首部作为键/值对返回
getResponseHeader("header") 返回指定首部的串值
open("method","url") 建立对服务器的调用
send(content) 向服务器发送请求
setRequestHeader("header","value") 把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()

3、标准XMLHttpRequest属性
onreadystatechange   
readyState 请求的状态。0=未初始化;1=正在加载;2=已加载;3;交互中;4=完成
responseText 服务器的响应,表示为一个串
responseXML 服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
status 服务器的HTTP状态码。200=OK;404=NOT FOUND

4、用于处理XML文档的DOM元素属性
childNodes 返回当前元素所有子元素的数组
firstChild  
lastChild  
nextSibling 返回进跟在当前元素后面的元素
nodeValue  
parentNode  
previousSibling 返回紧邻当前元素之前的元素

5、用于遍历XML文档的DOM元素方法
getElementById(id) (document) 
getElementsByTagName(name)
hasChildNodes()
getAttribute(name)

6、动态创建内容是所用的W3C DOM属性和方法
document.createElement(tagName) 创建由tagName指定的元素。如果以串div为方法参数,就会生成一个div元素
document.createTextNode(text)  
<element>.appendChild(chileNode)
<element>.getAttribute(name)
<element>.setAttribute(name,value)
<element>.insertBefore(newNode,targeNode)
<element>.removeAttribute(name)
<element>.removeChild(childNode)
<element>.replaceChild(newNode,oldNode)
<element>.hasChileNodes()

7、GET 与 POST
GET方法将参数追加到URL中发送
POST方法将参数串放在请求体中发送
对于POST请求,需要设置如下:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

8、请求参数为XML
因为,对于从头构件文档对象,目前还没有跨浏览器的技术。
所以使用串来连接创建XML,而不是穿件文档和元素对象。
<script type = "text/javascript"
function createXML(){
 var xml = "<pets>";
 var options = document.getElementById("petTypes").childNodes;
 var option = null;l
 for(var i = 0 ; i < options.length ; i++){
  option = option[i];
  if(option.selected){
   xml = xml + "<type>" + option.value + "<//type>";
  }
 }

 xml = xml + "<//pets>";
 return xml;
}

</script>

<select id="petTypes" size="2" multiple="true">
 <option value="cats">Cats</option>
 <option value="dogs">Dogs</option>
</select>

存在问题:
1、XML原理,标签定义模式(page10)

2、Content-Type
服务器的端:
 response.setContentType("text/xml");
客户端浏览器:
 对于POST请求,需要设置如下:
 xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 使浏览器不保存本地缓存结果:
 response.setHeader("Cache-Contrlo","no-cache");
 response.setHeader("Pragma","no-cache");

3、中文乱码问题(gb2312/utf-8) 

原创粉丝点击