AJAX:Asynchronus Javascript And Xml,异步 JavaScript 和 XML 技术
AJAX 技术的使用,可以替代 JSP 并且效率高很多;使用 AJAX 与服务器异步传输信息,浏览器页面不刷新的情况下,JavaScript 接收服务器传回的信息并输出到页面上。
XML 本扮演着数据的存储和传输的功能,但是由于 XML 文件较为耗费资源,如今多使用 JSON(JavaScript Object Notation)替代 XML 的功能。
AJAX
<script type="text/javascript">
window.onload = function () {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("", "", true);
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
var result = xmlHttp.responseText;
...
}
}
xmlHttp.send();
}
</script>
xmlHttp 对象有一个属性 readyState 是一个 int 类型的数字,监测服务器的处理状态
readyState | 服务器状态 |
---|
0 | 请求未初始化 |
1 | 服务器连接已建立 |
2 | 请求已接收 |
3 | 请求处理中 |
4 | 请求已完成,且响应已就绪 |
xmlHttp 对象还有一个属性 status,表示网络请求的结果
status | 网络状态 |
---|
2xx | 表示成功,200请求成功 |
3xx | 表示重定向 |
4xx | 表示客户端错误,404页面没找到 |
5xx | 表示服务端错误 |
JSON
服务器端,controller 类:
JSONObject jsonObject = new JSONObject();
jsonObject.put("键", 值);
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObject.toJSONString());
put 进入 jsonObject 的数据类型:
- 很少见:String、int、Integer
- 常见:数组 [ ]、集合 List Set Map、对象
浏览器端:
var responseText = xmlhttp.responseText;
var jsonObject = JSON.parse(responseText);
var xxx = jsonObject.键;
...
JSON.parse() 方法可以解析:数组、List、Set、对象、Map
但是 Map 是非常特殊的,因为每个元素的键值对都不相同,如此解析:
var map = JSON.parse(responseText).键;
Object.keys(map);
Object.values(map);
Object.entries(map);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)