JavaScript中的Ajax

一.了解ajax

1.Ajax的概念

	ajax是前后端数据交互的重要手段;
	ajax的全称是:“Asynchronous JavaScript and XML”;

2.同步和异步

	1>生活中的同步和异步,顾名思义,就是同时进行和顺序进行;而程序中的同步和异步,恰巧和生活中的相反;
	2>JavaScript中同步就是:你不执行完上面的代码,那么下面的代码你就别执行;一步一步执行,这就是同步。
	 异步就是可以一起执行的代码;

3.Ajax的介绍

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

二.Ajax的写法

var url = "http://localhost/ajax/data/test.txt";
//1.载体xhr对象
var xhr = new XMLHttpRequest();
//2.发起请求,设置请求方式,地址,异步
xhr.open("get",url,true);
//3.通过事件,监听状态
xhr.onreadystatechange = function(){
//				readyState状态:ajax的执行阶段
//				http的状态:xhr.status
if(xhr.readyState == 4 && xhr.status == 200){
					console.log(xhr.responseText);
				}else if(xhr.readyState == 4 && xhr.status != 200){
					console.log(xhr.status);
				};
			}
//4.发送
xhr.send(null);

以上代码就是Ajax的写法,如果我们要使用,只有封装才能随时使用

Ajax的封装

一.Ajax的get封装

document.onclick = function(){
			var url = "http://localhost/1911/ajax/data/test.php";
			ajaxGet(url,function(res){
				console.log(res)
			});
		}
//====================================================================
//以下代码为ajax的get封装
function ajaxGet(url,cb,data){
	data = data || {};
	var str = "";
	for(var i in data){
		str = str + i+"="+data[i]+"&";
	}
	var d = new Date();
	url = url + "?" + str + "__qft="+d.getTime();
	var xhr = new XMLHttpRequest();
	xhr.open("get",url,true);
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			cb(xhr.responseText);
		}
	}
	xhr.send();
}

Ajax的post封装

document.onclick = function(){
			var url = "http://localhost/1911/ajax/data/post.php";
			ajaxPost(url,function(res){
				console.log(res)
			},{
				a:"hello",
				b:"world",
				abc:"hahaha"
			})
		}
//=================================================================
		function ajaxPost(url,cb,data){
			data = data || {};
			var str = "";
			for(var i in data){
				str += `${i}=${data[i]}&`;
			}
			str = str.slice(0,str.length-1);
			var ajax = new XMLHttpRequest();
			ajax.open("post",url,true);
			ajax.onreadystatechange = function(){
				if(ajax.readyState === 4 && ajax.status === 200){
					cb(ajax.responseText);
				}
			}
			ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			ajax.send(str);
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值