AJAX技术简介

AJAX:Asynchronous JacaScript and XML(B/S:前后端分离)

发展历程:

  1. 在2005年2月由Jesse James Garrett首次提出
  2. 在google地图中首次被应用,从而为人所知。
  3. 在目前阶段通过AJAX与服务器交互已经成为主流的开发模式。

有点分析:

  1. 避免网页频繁刷新造成不良的用户体验。
  2. 减少刷新将会减少服务器的执行压力。
  3. 此种交互方式提高服务器程序的共用性。

AJAX的执行原理:

使用ajax与服务器交互时,发送以及接受的信息是特殊数据格式,而非整个网页程序,因此不需要刷新

AJAX的技术组成:

AJAX实际上是几种技术以一种全新的方式聚合在一起的方式

  • 服务器端语言:服务器响应客户端请求。AJAX与服务器语言无关
  • XML是一种描述数据的格式XML是传输格式的在其中一种
  • HTML和CSS标准化呈现
  • DOM实现动态显示和交互
  • 使用XMLHTTP组件XMLHttpRequest对象进行同步或异步数据读取,非w3c标准
  • 使用Javascript绑定和处理所有数据

 

简单的使用代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			// js里XMLHttpRequest类似于python里的requests、urlib
			function getXHR(){
				if(window.XMLHttpRequest){
					return new window.XMLHttpRequest()
				}else{
					// 解决微软的特殊情况
					new window.ActiveXObject('Microsoft.XMLHTTP')
				}
			}
			
			xhr = getXHR()
			
			data = {user:'zhangsan', age:19, date:new Date(), money:[1,2,3,4,5]}
			
			console.log(typeof(data))
			console.log(data.user)
			console.log(data.age)
			console.log(data.date.toLocaleDateString())
		
			// 把json对象转换为json字符串:"{"user":"zhangsan","age":19,"date":"2019-09-23T02:52:09.956Z"}"
			strs = JSON.stringify(data)
			console.log(typeof(strs))
			console.log(strs)
			
			// 解析字符创为json对象
			jsonObj = JSON.parse(strs)
			
			console.log(jsonObj.user)
			console.log(jsonObj.money[0])
			
			obj = new Object()
			obj.user = 'zhangsan'
			
			console.log(obj.user)
			
		</script>
	</head>
	<body>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			// js里XMLHttpRequest类似于python里的requests、urlib
			function getXHR(){
				if(window.XMLHttpRequest){
					return new window.XMLHttpRequest()
				}else{
					// 解决微软的特殊情况
					new window.ActiveXObject('Microsoft.XMLHTTP')
				}
			}
			// 异步请求服务器数据函数
			function jsonData(){
				var xhr = getXHR()
				xhr.open('GET', 'data.json', true)
				// xhr.setRequestHeader()
				xhr.send(null)
				// http://127.0.0.1:8020/htmlproject/day06/data.json
				
				xhr.onreadystatechange = function(){
					if(xhr.readyState == 4 && xhr.status == 200){
						// 得到服务返回的json字符串
						resp = xhr.responseText
						console.log(resp)
						htmlText = ""
						// 解析字符串为json对象
						jsonObj = JSON.parse(resp)
						console.log(jsonObj)
						// 组织显示html格式
						htmlText = '<tr><td>' + jsonObj.user + '</td></tr>'
						document.getElementById('userData').innerHTML = htmlText 
					}else{
						
					}
				} 
			}
			
			function setInnerHTML(id, text){
				document.getElementById(id).innerHTML = htmlText
			}
		</script>
	</head>
	<body>
		<input type="button" value="加载" onclick="jsonData()"/>
		
		<table border="1">
			<thead>
				<tr><th>用户名</th></tr>
			</thead>
			<tbody id='userData'></tbody>
		</table>
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值