Ajax基础知识总结

仅供小白参考。

<?php 
/**
Ajax简介,我从W3school中总结一下
	
	我自己感觉ajax就是在页面中开辟了一小块地方,专门刷新使用,大的页面不懂,这个小宽口和后台进行沟通,传递数据,单独刷新

	ajax其实就是JS的网络化,在页面不刷新的情况下,通过XMLHttpRequest发送请求

	HTML 定义了页面的结构
	CSS  美化页面样式
	JS   控制页面的行为,和用户互动 
****/

1.概念
	AJAX = 异步JavaScript 和 XML 
	AJAX 是一种用于创建快速动态网页的计数,通过后台与服务器进行少量的数据交换,可以使网页实现异步更新,
			同步更新只网页刷新的时候,内容更新
			异步更新指网页没有刷新,但是内容改变了

2.AJAX 创建对象
	XMLHttpRequest是AJAX的基础

	创建XMLHttpRequest对象
		所有的浏览器都已经内建了XMLHttpRequest对象
	  创建XMLHttpRequest对象
	<script>  
	  var xmlhttp;
	  if (window.XMLHttpRequest) {
	  	//如果浏览器已经支持XMLHttpRequest对象
	  	//比如 IE7+ firefox chrom opera safari 
	  	xmlhttp = new XMLHttpRequest();
	  }else{
	  	//IE6 IE5 
	  	xmlhttp = new ActiveXObjecr("Microsoft.XMLHTTP");
	  }

	</script>

3.AJAX 请求
	使用XMLHttpRequest对象的 open() he  send() 方法

	//规定请求类型、url、以及是否异步
	open(method,url,async);
		method 方法有 get和post
		url 表示要请求的文件的路径
		async 表示异步(true)还是同步
	
	//表示把请求发送到服务器上,只有post才用
	send(string); 


	xmlhttp.open("GET","test1",true);
	xmlhttp.send();

	GET比POST更加快速简单,大部分都能用
	但是,必须用POST的情况
		1.无法使用缓存文件的时候,需要更新服务器上的文件
		2.向服务器发送大量的数据(由于浏览器或者服务器的限制,GET传输量有限)
		3.发送包含未知字符的用户输入的时候,POST比较可靠

	使用GET请求的例子
		//加后面的随机数是为了防止得到缓存结果,也可以去掉的
			xmlhttp.open("GET", "./01.php?i="+Math.random(),true );
			xmlhttp.send();
		//通过GET传送数据
			xml.http.open("GET", "./01.php?username=zhangsan&email=zhangsan@163.com", true);

	使用POST请求的例子
		//传输表单的使用,要使用setRequestHeader来添加HTTP头信息,在send()中添加数据
			xmlhttp.open("POST", "./01.php", true);
			//必须加上以下这句话。
			xmlhttp.setRequestHeader("Content-type","application/x-www/form-urlencode");
			xmlhttp.send("username=zhangsan&email=zhangsan@163.com");	

	当第三个参数是true时,表示异步的是要,要规定在响应的地方有 onreadystatechange 事件就绪状态的时候就绪的函数
		xmlhttp.onreadystatechange = function(){
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				alert("准备就绪");
				document.getElementById("t1").innerHTML = "ok";
4.				//响应,获得字符串形式的响应数据
				document.getElementById("t2").innerHTML = xmlhttp.responseText;
				//响应,获得xml文件形式的响应格式,并且解析..就是把xml文档读出来
				xmlDoc=xmlhttp.responseXML;
			    txt="";
			    x=xmlDoc.getElementsByTagName("title");
			    
			    for (i=0;i<x.length;i++)
			      {
			      txt=txt + x[i].childNodes[0].nodeValue + "<br />";
			      }
			    document.getElementById("myDiv").innerHTML=txt;
			    }
			}

		}
5. onreadystatechange 事件 
	XMLHttpRequest对象的三个属性 分别是:
		1.onreadysatechange 储存函数,每当readyState属性改变的时候,都会执行一次
		2.readyState 储存XMLHttpRequest的状态 0-4
						0:请求没有初始化
						1:服务器已经建立连接
						2:请求已经收到
						3:请求处理中
						4:请求完成,并且响应已经就绪
		3.state 表示 200:OK
					 404:未找到页面

	因此,只有当readyState ==4 && status == 200 的时候,才表示响应就绪
		//readyStatus 每改变一次,onreadystatechange就会执行一次

	另外,如果一个页面有多个ajax,应该使用callback()
		//callback() 是一种一参数传递给另一个函数的函数。意思是一个函数的参数是另一个函数
		//这个不会太懂

7.另外,使用ajax可以
	1.和ASP/PHP 进行交互,比如提示客户名字,这个我已经写了
	2.和数据库进行交互,下拉菜单选择公司,然后列出数据库中的内容
	3.和XML文件进行交互,解析xml文件中的内容
		//http://www.w3school.com.cn/ajax/ajax_xmlfile.asp

8.AJAX其他的实例
		
		//http://www.w3school.com.cn/example/ajax_examples.asp


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值