javascript
SpringMVC(四)——Ajax技术
文章目錄
- 1. 什么是Ajax技術(shù)
- 2. 偽造Ajax
- 3. Ajax相關(guān)測(cè)試
1. 什么是Ajax技術(shù)
- AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。
- Ajax 是一種在無(wú)需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù)。
- Ajax 不是一種新的編程語(yǔ)言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。
- 傳統(tǒng)的網(wǎng)頁(yè)(即不用ajax技術(shù)的網(wǎng)頁(yè)),想要更新內(nèi)容或者提交一個(gè)表單,都需要重新加載整個(gè)網(wǎng)頁(yè)。
- 使用ajax技術(shù)的網(wǎng)頁(yè),通過(guò)在后臺(tái)服務(wù)器進(jìn)行少量的數(shù)據(jù)交換,就可以實(shí)現(xiàn)異步局部更新。
利用Ajax可以做:
- 注冊(cè)時(shí),輸入用戶名自動(dòng)檢測(cè)用戶是否已經(jīng)存在。
- 登陸時(shí),提示用戶名密碼錯(cuò)誤
- 刪除數(shù)據(jù)行時(shí),將行ID發(fā)送到后臺(tái),后臺(tái)在數(shù)據(jù)庫(kù)中刪除,數(shù)據(jù)庫(kù)刪除成功后,在頁(yè)面DOM中將數(shù)據(jù)行也刪除。
…等等
2. 偽造Ajax
可以使用前端的iframe標(biāo)簽來(lái)偽造一個(gè)ajax的樣子
1、新建一個(gè)項(xiàng)目,構(gòu)建web模塊
2、編寫一個(gè) ajax-frame.html 使用 iframe 測(cè)試,感受下效果
3、配置Tomcat測(cè)試
可以看出,只有加載頁(yè)面位置區(qū)域局部更新頁(yè)面,其余區(qū)域不變。
3. Ajax相關(guān)測(cè)試
用以下兩種均可實(shí)現(xiàn)Ajax
- jQuery :用的比較多
- axios :vue推薦使用 axios
在這里使用 jquery
1. 失去焦點(diǎn)(鼠標(biāo)離開輸入框)觸發(fā)一個(gè)ajax請(qǐng)求
頁(yè)面ajax01.html
<!DOCTYPE html> <html> <head lang="en"><meta charset="UTF-8"><html><head><title>Title</title><!--注意:script標(biāo)簽不要自閉合--><script src="http://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script></head> <body>百度:<input type="text" id="baidu" onblur="baidu()"><script>function baidu() {// 失去焦點(diǎn)觸發(fā)一個(gè)ajax請(qǐng)求alert("ajax請(qǐng)求")} </script> </body> </html>測(cè)試
鼠標(biāo)先點(diǎn)擊輸入框,再移動(dòng)離開輸入框,即失去焦點(diǎn)
2. 失去焦點(diǎn)觸發(fā)一個(gè)ajax請(qǐng)求,后臺(tái)返回ok,顯示測(cè)試成功
控制類AjaxController
package com.zz.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class AjaxController {@RequestMapping("/a2")public String ajax(String name){System.out.println(name);return "ok";} }頁(yè)面ajax02.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><script src="http://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> </head> <body>百度:<input type="text" name="name" id="baidu" onblur="baidu()"><script>function baidu(){// 失去焦點(diǎn)觸發(fā)一個(gè)ajax請(qǐng)求$.post({url:'/a2',data:{name:$("#baidu").val()},//成功的回調(diào)函數(shù)success:function (data,status) {console.log(data)console.log(status)}});} </script> </body> </html>測(cè)試
3. 失去焦點(diǎn)觸發(fā)一個(gè)ajax請(qǐng)求,后臺(tái)返回一個(gè)集合對(duì)象
控制類AjaxController
@RequestMapping("/aj2")public List<User> ajax2(String name){User user1 = new User("鐵牛1", 18, "女");User user2 = new User("鐵牛2", 18, "男");User user3 = new User("鐵牛3", 18, "女");User user4 = new User("鐵牛4", 18, "男");User user5 = new User("鐵牛5", 18, "女");User user6 = new User("鐵牛6", 18, "男");List<User> users = Arrays.asList(user1, user2, user3, user4, user5, user6);return users;}同時(shí)把頁(yè)面ajax02.html中的地址改成 /aj2
測(cè)試
4. 觸發(fā)一個(gè)事件,數(shù)據(jù)回顯到前端界面
頁(yè)面ajax03.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><script src="http://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> </head> <body><input type="button" id="btn" value="點(diǎn)擊"/> <table width="70%" border="1px" align="center"><tr><td>姓名</td><td>年齡</td><td>性別</td></tr><tbody id="content"><!--應(yīng)該從后臺(tái)自動(dòng)刷新數(shù)據(jù)過(guò)來(lái)--></tbody> </table> <script>$('#btn').click(function(){//post(url,data,success的回調(diào)函數(shù))$.post("/aj2",function (data){console.log(data);//基本的dom操作let html="";for (let i = 0; i <data.length ; i++) {html+= "<tr>" +"<td>" + data[i].name + "</td>" +"<td>" + data[i].age + "</td>" +"<td>" + data[i].sex + "</td>" +"</tr>"}$("#content").html(html);})}) </script> </body> </html>測(cè)試
總結(jié)
以上是生活随笔為你收集整理的SpringMVC(四)——Ajax技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaWeb(十一)——登录注册小案例
- 下一篇: QT解析 JSON 格式的数据