Web前端——Ajax练习
文章目录
一、Ajax初识
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)。使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
1、Ajax特点
1、优点
①不需要插件支持
②用户体验极佳。不刷新页面即可获取可更新的数据
③提升Web程序的性能。在传递数据方面做到按需发送,不必整体提交
④减轻服务器和带宽的负担。将服务器的一些操作转移到客户端
2、缺点
①前进、后退的功能被破坏。因为Ajax永远在当前页,不会记录前后页面
②搜索引擎的支持度不够。因为搜索引擎爬虫还不能理解JS引起数据的内容
2、常见状态码
1、100 ~ 199:表示连接接续
2、200 ~ 299:表示各种意义上的成功
3、300 ~ 399:表示重定向
4、400 ~ 499:表示各种客户端错误
5、500 ~ 599:表示各种服务器错误
二、jQuery.Ajax
1、语法格式
$.ajax({参数一:value, 参数二:value, ......})
2、参数
url:请求地址
type:请求方式,GET、POST(1.9.0之后用method)
data:要发送的数据
success:成功之后执行的回调函数(全局)
三、源码
1、登陆界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆界面</title>
<script src="./js/jquery-3.6.0.js"></script>
</head>
<body>
<form action="http://110.42.140.234:8083/user/toLogin">
<table border="0" align="center">
<tr>
<td>用户名:</td>
<td><input type="text" name="username" id="username"><br></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="psw" id="psw"><br></td>
</tr>
<tr>
<td><input value="登陆" type="button" onclick="login()"><br></td>
</tr>
</table>
</form>
</body>
<script>
function login(){
$.ajax({
url:'http://110.42.140.234:8083/user/toLogin',
type:'get',
data:{
username:$('#username').val(),
psw:$('#psw').val()
},
success:function (e){
let data = e.data;
console.log(data);
if(data.login_type.toString() == '登录成功!'){
alert(data.login_type);
message();
}else if(data.login_type.toString() == '登录失败,账号或密码错误!'){
alert(data.login_type);
}
}
});
}
//跳转获取数据页面
function message(){
location.href = "./message.html";
}
</script>
</html>
2、获取数据界面
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>获取数据</title>
<script src="./js/jquery-3.6.0.js"></script>
<link rel="stylesheet" href="./css/bootstrap.min.css" />
</head>
<body>
<input type="button" onclick="getMessage()" value="获取数据">
<input type="button" onclick="addMessage()" value="添加数据">
<input type="button" onclick="back()" value="返回登陆界面">
<div class="container table-striped">
<table class="thead-dark" width="80%" align="center" >
<tr>
<td>用户ID</td>
<td>用户名</td>
<td>年龄</td>
<td>地址</td>
<td>电子邮件</td>
<td>学历</td>
<td>创建时间</td>
<td>操作</td>
</tr>
<tbody id="content">
</tbody>
</table>
</div>
<script>
var data = "";
function getMessage(){
$.ajax({
url:'http://110.42.140.234:8083/user/getMessage',
type:'get',
success:function(e){
data = e.data;
let content = "";
for (let i = 0; i < data.length; i++) {
content += "<tr>" +
"<td>" + data[i].id + "</td>" +
"<td>" + data[i].name + "</td>" +
"<td>" + data[i].age + "</td>" +
"<td>" + data[i].adress + "</td>" +
"<td>" + data[i].email + "</td>" +
"<td>" + data[i].education + "</td>" +
"<td>" + data[i].creatTime + "</td>" +
"<td>" + "<button οnclick=\"dele("+data[i].id+")\">删除</button>" + "</td>" +
"</tr>"
}
$('#content').html(content);
}
})
}
//跳转删除页面
function dele(id){
location.href = "./delete.html?id="+id;
}
//跳转到添加数据界面
function addMessage(){
location.href = "./addMessage.html";
}
//返回到登陆界面
function back(){
location.href = "./index.html";
}
</script>
</body>
</html>
3、删除数据界面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>删除界面</title>
<link rel="stylesheet" href="./css/bootstrap.min.css" />
<script src="./js/jquery-3.6.0.js"></script>
</head>
<body>
<input type="button" id="btn" onclick="backMessage()" value="返回">
<div class="container table-striped">
<table class="thead-dark" width="80%" align="center" >
<tr>
<td>用户ID</td>
<td>用户名</td>
<td>年龄</td>
<td>地址</td>
<td>电子邮件</td>
<td>学历</td>
<td>创建时间</td>
<td>操作</td>
</tr>
<tbody id="content">
</tbody>
</table>
</div>
</body>
<script>
function getPar(par){
//获取当前URL
var local_url = document.location.href;
//获取要取得的get参数位置
var get = local_url.indexOf(par +"=");
if(get == -1){
return false;
}
//截取字符串
var get_par = local_url.slice(par.length + get + 1);
//判断截取后的字符串是否还有其他get参数
var nextPar = get_par.indexOf("&");
if(nextPar != -1){
get_par = get_par.slice(0, nextPar);
}
return get_par;
}
//请使用Get请求使点击删除时,页面发生跳转,并传递用户参数“id”到本页面
var local_id = getPar("id");
console.log("获得页面传参:id:"+local_id);
$.ajax({
url:'http://110.42.140.234:8083/user/deleteMessage',
tpye:'get',
data:{
messageId:local_id
},
success:function(e){
console.log(e);
alert(e.data.delete_type);
}
});
$.ajax({
url:'http://110.42.140.234:8083/user/getMessage',
type:'get',
success:function(e){
data = e.data;
let content = "";
for (let i = 0; i < data.length; i++) {
if(i == local_id) i++;
content += "<tr>" +
"<td>" + data[i].id + "</td>" +
"<td>" + data[i].name + "</td>" +
"<td>" + data[i].age + "</td>" +
"<td>" + data[i].adress + "</td>" +
"<td>" + data[i].email + "</td>" +
"<td>" + data[i].education + "</td>" +
"<td>" + data[i].creatTime + "</td>" +
"<td>" + "<button οnclick=\"dele("+data[i].id+")\">删除</button>" + "</td>" +
"</tr>"
}
$('#content').html(content);
}
})
function backMessage(){
location.href = "./message.html";
}
</script>
</html>
4、添加数据界面
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>添加数据</title>
<script src="./js/jquery-3.6.0.js"></script>
<link rel="stylesheet" href="./css/bootstrap.min.css" />
</head>
<body>
<form action="http://110.42.140.234:8083/user/addMessage" id="form">
<table border="0" align="center">
<tr>
<td>用户ID:</td>
<td><input type="text" name="id" id="id"><br></td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="name" id="name"><br></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age" id="age"></input><br></td>
</tr>
<tr>
<td>地址:</td>
<td><input type="text" name="adress" id="adress"><br></td>
</tr>
<tr>
<td>电子邮件:</td>
<td><input type="text" name="email" id="email"><br></td>
</tr>
<tr>
<td>学历:</td>
<td><input type="text" name="education" id="education"><br></td>
</tr>
<tr>
<td><input type="button" value="添加" onclick="submitMessage()"></td>
<td><input type="button" value="返回" onclick="back()"></td>
</tr>
</table>
</form>
<div class="container table-striped">
<div id='content'>
</div>
</div>
<script>
//返回按钮
function back(){
location.href = "./message.html";
}
//提交按钮
let new_data = "";
function submitMessage(){
$.ajax({
url:'http://110.42.140.234:8083/user/addMessage',
type:'get',
data:
{
id:$('#id').val(),
name:$('#name').val(),
age:$('#age').val(),
adress:$('#adress').val(),
email:$('#email').val(),
education:$('#education').val(),
creatTime:$('#creatTime').val()
},
success:function(e){
alert(e.data.add_type);
$('#form').remove();
$.ajax({
url:'http://110.42.140.234:8083/user/getMessage',
type:'get',
success:function(e1){
data = e1.data;
//创建表头
let content = "<table class='thead-dark' width='80%' align='center' >" +
"<tr>" +
"<td>用户ID</td>" +
"<td>用户名</td>" +
"<td>年龄</td>" +
"<td>地址</td>" +
"<td>电子邮件</td>" +
"<td>学历</td>" +
"<td>创建时间</td>" +
"<td>操作</td>" +
"</tr><tbody>" ;
for (let i = 0; i < data.length; i++) {
//获取添加前的数据
content +=
"<tr>" +
"<td>" + data[i].id + "</td>" +
"<td>" + data[i].name + "</td>" +
"<td>" + data[i].age + "</td>" +
"<td>" + data[i].adress + "</td>" +
"<td>" + data[i].email + "</td>" +
"<td>" + data[i].education + "</td>" +
"<td>" + data[i].creatTime + "</td>" +
"<td>" + "<button οnclick=\"dele("+data[i].id+")\">删除</button>" + "</td>" +
"</tr>"
}
//获取添加后的数据
content +=
"<tr>" +
"<td>" + e.data.add_message.id + "</td>" +
"<td>" + e.data.add_message.name + "</td>" +
"<td>" + e.data.add_message.age + "</td>" +
"<td>" + e.data.add_message.adress + "</td>" +
"<td>" + e.data.add_message.email + "</td>" +
"<td>" + e.data.add_message.education + "</td>" +
"<td>" + e.data.add_message.creatTime + "</td>" +
"<td>" + "<button οnclick=\"dele("+e.data.add_message.id+")\">删除</button>" + "</td>" +
"</tr>"
"</tbody></table>";
$('#content').html(content);
}
});
}
});
}
</script>
</body>
</html>
四、运行结果
1、登陆界面
2、获取数据界面
3、删除数据界面
删除id为3的数据
4、添加数据界面