AJAX&JSON学习笔记

AJAX

AJAX指异步JavaScript和XML。是一种用于创建更好更快以及互动性更强的web应用程序的技术,是基于JavaScript、XML、HTML、CSS的用法。

ajax:只刷新局部页面的技术

  • JavaScript:更新局部的页面。
  • XML:一般用于请求数据和响应数据的封装。
  • XMLHttpRequest对象:发送请求到服务器并获得返回结果。
  • CSS:美化页面样式。
  • 异步:发送请求后不等返回结果,由回调函数处理结果。

XMLHttpRequest对象

构造方法:不同浏览器获取该对象的方法不同。具体可查看W3CSchool提供的函数。

AJAX步骤:

1.获取XMLHttpRequest对象

2.建立一个连接(调用open()方法)

3.发送请求(调用send(param)方法,get方法的话param为null)

4.处理响应结果,使用指定回调函数的属性:onreadystatechange

测试代码:

//w3cshool中查询到的获取XMLHttpRequest对象的方法
function getXMLHttpRequest() {
	var xmlhttp;
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else {// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/myJS.js"></script>
</head>
<script type="text/javascript">
	window.onload= function(){
		/* 获取XMLHttpRequest对象
		var request = XMLHttpRequest();
		
		alert(request); */
		
		//1.获取XMLHttpRequest对象
		var req =XMLHttpRequest();
		
		//4.处理响应结果
		req.onreadystatechange = function(){//指定回调函数
			
			//alert(req.readyState);//查看服务器端响应状态:1,1,2,3,4
			if(req.readyState==4){
				//alert(req.status);//查看服务器响应状态:200
				if(req.status==200){
					alert(req.responseText);//如果响应状态为200,查看响应内容:hello servelt!
				}
				
			}
			
		}
		
		//2.建立一个请求
		req.open("get","${pageContext.request.contextPath }/servlet/servletDemo1");
		//3.发送请求
		req.send(null);
	}
</script>
<body>
</body>
</html>

方法:

方法名

说    明

open(method,URL,async)

建立与服务器的连接

method参数指定请求的HTTP方法,典型的值是GET或POST

URL参数指请求的地址,可以问号传值

async参数指定是否使用异步请求,其值为true或false

send(content)

发送请求

content参数指定请求的参数

setRequestHeader(header,value)

设置请求的头信息

属性

  1. onreadystatechange:指定回调函数,用来进行事件处理
  2. readyState: XMLHttpRequest的状态信息 

就绪状态码

说    明

0

XMLHttpRequest对象没有完成初始化

即:刚刚创建。

1

XMLHttpRequest对象开始发送请求

调用了open方法,但还没有调用send方法。请求还没有发出

2

XMLHttpRequest对象的请求发送完成

send方法已经调用,数据已经提交到服务器,但没有任何响应

3

XMLHttpRequest对象开始读取响应,还没有结束

收到了所有的响应消息头,但正文还没有完全收到

4

XMLHttpRequest对象读取响应结束

一切都收到了

  1. status:HTTP的状态码

状态码

说    明

200

服务器响应正常

400

无法找到请求的资源

403

没有访问权限

404

访问的资源不存在

500

服务器内部错误

  1. responseText:获得响应的文本内容
  2. responseXML:获得响应的XML文档对象 documednt(不常用)

   

       readyState:类型short;只读

       responseText:类型String;只读

       responseXML:类型Document;只读

       status:类型short;只读

JSON

JSON(Javascript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

这种语言是基于对象的。基本格式是:var jo ={键名:值名 ,键名:值名,...}   可以用来存储变量和函数。

var pp = {name:"tom",age:"18",show:function(){alert("hello");}};

//调用如下:
pp.age  : document.write(pp.age);
pp.show : pp.show();
var ppp = [{name:"tom",age:18},{name:"jerry",age:19}];
//访问jerry:
document.write(ppp[1].name);

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

需要将普通字符串转换位JSON对象需要用到JSON的包:

这些是我们需要导入的包,导入包后就存在了,将数据封装成json对象:

那么,json对象可以封装那些类型的数据呢???

     json可以封装任意类型的数据(Object)。

比如我们创建一个自定义对象b,那么使用json封装b对象为json对象的语法如下:

String s = JSONObject.fromObejct(b).toString();

s就是我们封装后的json对象,可以在控制台打印看一下。

   再比如我们需要封装一个集合对象List,那么就使用JSONArray对象:

String s = JSONArray.fromObject(list).toString();

   在将其他对象转换为json对象的时候,有时候我们并不想把所有的参数都转换,只需要转换一部分,那么我们可以使用JsonConfig对象来完成过滤功能:

JsonConfig jc = new JsonConfig();
jc.setExcludes(new String[]{"name","gender","birthday"});

就可以把我们希望的值写入json对象中了。

猜你喜欢

转载自blog.csdn.net/weixin_38930706/article/details/81530659