javaScriptDay09:Ajax

0x00 Ajax使用

Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

Ajax是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量的数据交换

Ajax可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页进行部分更新。

调用封装好的Ajax,传入读取的文件地址,成功需要做的事情和失败需要做的事情

ajax(url,fnSucceed,fnFailed)

npm install -g http-server 安装http-server 启动一个本地静态服务

0x01 如何创建Ajax

1.创建Ajax对象

ie5,ie6使用var oAjax= new ActiveXObject("Microsoft.XMLHTTP")创建

现在浏览器使用 var oAjax = new XMLHttpRequest()创建(一般使用这种即可)

2.连接服务器

oAjax.open('GET',url,true)

三个参数分别为:

  1. 请求类型
  2. 文件在服务器上的位置
  3. 异步(true)或者同步(false)

3.发送请求

oAjax.send()

4.接受数据

onreadystatechange事件

readState属性:请求状态

0 未初始化,还没有调用open()方法

1 载入 已调用send()方法,正在发送请求

2 载入完成 send()方法完成,已收到全部响应内容

3. 解析 :正在解析响应内容

4. 完成 响应内容解析完成,可以在客户端调用了。

status属性:请求结果

200:OK

404:未找到页面

请求成功返回内容

responseText

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
<button id="read">读取数据</button>
<script type="text/javascript">
	function Ajax(url,fnSucceed,fnFailed){
		//1.创建ajax对象
		if(window.XMLHttpRequest){
			var oAjax = new XMLHttpRequest();
		}else{
			var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
		}
		// 2.连接服务器
		oAjax.open('GET',url,true);
		//3.发送请求
		oAjax.send()
		//4.接受数据
		oAjax.onreadystatechange=function(){
			if(oAjax.readyState == 4){
				if(oAjax.status == 200){
					fnSucceed(oAjax.responseText);
				}else{
					if(fnFailed){
						fnFailed();
					}
				}
			}
		}

	}
	var oBtn=document.getElementById('read');
	oBtn.onclick = function(){
		Ajax("xiaodi.txt",function(res){
			alert(res);
		},function(){
			alert("请求失败");
		})
	}
</script>
</body>
</html>

0x02 RegExp对象

1.新建正则表达式有两种方法:

一种使用字面量,以斜杠表示开始和结束

var regex = /xyz/

另一种使用RegExp构造函数

var regex = new RegExp('xyz');

推荐第一种

2.test() 返回一个布尔值,如果能匹配上就返回true;

3.exec()返回匹配的结果,返回值是一个数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<script>
    var str=2;
    var reg = /^\d$/;
    console.log(reg.test(str));
    console.log(reg.exec(str));
</script>
</body>
</html> 

4.匹配修饰符

(1)i 修饰符,默认情况下,正则表达式区分大小写,加上i修饰符后表示忽略大小写(ignorecase)

var reg =/^B$/i;

console.log(reg.exec('b'));仍然能匹配成功

(2)g修饰符,默认情况下,正则表达式第一次匹配成功后,就停止匹配了,加上g表示全局匹配。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<script>
    var str="hello world hello hello";
    var reg = /hello/g;
    // 匹配第一个hello
    console.log(reg.exec(str));
    // 匹配第二个hello
    console.log(reg.exec(str));
    // 匹配第三个hello
    console.log(reg.exec(str));
</script>
</body>
</html> 
发布了156 篇原创文章 · 获赞 19 · 访问量 8934

猜你喜欢

转载自blog.csdn.net/weixin_43415644/article/details/104092373
09