Ajax&Json——学习笔记(一)

一、Ajax简介

1.Ajax是一种网页开发技术,(Asynchronous Javascript+XML)异步JavaScript和XML;

2.Ajax是异步交互,局部刷新;

3.Ajax能减少服务器压力;

4.Ajax能提高用户体验;

二、Ajax交互与传统交互比较

传统交互:网页整体刷新,服务器压力大,用户体验不好;

Ajax交互:局部刷新,服务器压力小,用户体验好;

三、Ajax核心知识

第一节:XMLHttpRequest对象创建

所有现代浏览器均支持XMLHttpRequest对象(IE5和IE6使用ActivieXObject)。

XMLHttpRequest用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

第二节:XMLHttpRequest对象请求后台

open(method,url,async)

规定请求的类型、URL以及是否一部处理请求。

method:请求的类型:GET或POST

url:文件在服务器上的文职

async:true(异步)或false(同步)

send(String)

将请求发送到服务器

string:仅用于POST请求

GET和POST

与POST相比,GET更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用POS请求:

无法使用缓存文件(更新服务器上的文件或数据库)

向服务器发送大量数据(POST没有数据量限制)

发送包含未知字符的用户输入时,POST比GET更稳定也更可靠

sentRequestHeader(header,value)

向请求添加HTTP头

header:规定头的名称

value:规定头的值

xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

异步-True或False?

AJAX指的时异步JavaScript和XML(Asynchronous JavaScript and XML).

为True的话,表示的时异步,异步表示程序请求服务器的同时,程序可以继续执行;能提高系统的运行效率;

为False的话,表示同步,JavaScript会等到服务器相应就绪才继续执行。如果服务器繁忙或缓慢,应用程序就挂起或停止

我们一般都是用True

第三节:XMLHttpRequest对象响应服务器

onreadystatechange事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当readyState改变时,就会触发onreadystatechange事件。

readyState属性存有XMLHttpRequest的状态信息。

下面是XMLHttpRequest对象的三个重要的属性:

onreadystatechange存储函数(或函数名),每当readyState属性改变时,就会盗用该函数。

readyState

存有XMLHttpRequest的状态。从0到4发生变化。

0:请求初始化

1:服务器连接已建立

2:请求已接收

3:请求处理中

4:请求已完成,且响应已就绪

status

200:"OK"

404:未找到页面

在onreadystatechange事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

如需获得来自服务器的响应,请使用XMLHttpRequest对象的responseText或responseXML属性。

属性                           描述

responseText             获得字符串形式的响应数据。

responseXML            获得XML形式的响应数据。

<%@ 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">
function loadName(){
	alert(1);
	var xmlHttp;
	if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
	}else{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	alert("readState状态:"+xmlHttp.readyState+";status状态:"+xmlHttp.status);
	xmlHttp.onreadystatechange=function(){
		alert("readState状态:"+xmlHttp.readyState+";status状态:"+xmlHttp.status);
		if(xmlHttp.readyState==4 && xmlHttp.status==200){
			alert(xmlHttp.responseText);
			document.getElementById("name").value=xmlHttp.responseText;
		}
	}
	
	//xmlHttp.open("get","getAjaxName?name='jack'&age=11",true);
	//xmlHttp.send();
	xmlHttp.open("post","getAjaxName",true);
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xmlHttp.send("name=jack&age=11");
}
</script>
</head>
<body>
<div style="text-align: center;">
	<div><input type="button" value="Ajax获取数据" onclick="loadName()">&nbsp;&nbsp;<input type="text" id="name" name="name" value=""></div>
</div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_39941298/article/details/81478324