精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
01 Ajax知識點

Ajax

文章目錄

一、同步與異步

  1. 同步(Synchoronous): 一個任務在運行中時,不能進行其他的任務

  2. 異步(Asynchoronous):在一個任務開啟時,可以開啟其他任務

同步應用場景異步應用場景
網址訪問用戶名驗證
a標簽跳轉聊天室
Submit表單提交百度搜索詞條建議

二、Json數據格式

2.1 JS對象數據格式

var stu = {    name:'Julay',    age:20,    sex:'nv'}

2.2 Json數據格式

Json(JavaScript Object Notation)是以JS對象的數據格式表示出來的字符串

  1. Json 使用{}表示一個對象

  2. Json 屬性名需要使用" "引起來

  3. 整體表示的是個字符串,最外層需要使用' '

//Json字符串var jsonStr = '{"name":"Tom","age":18}';//Json數組var JsonArr = '[	{"name":"julay","age":18},	{"name":"Tom","age":20}]';

Json在Ajax中的應用:

服務器查詢數據庫返回的 result 為JS對象數組,響應傳輸給Ajax時被自動轉換成Json字符串。

2.3 處理響應的Json數據

  • Json字符串轉換成JS對象數組:var json_js = JSON.parse();

  • JS數組轉換成Json:JSON.stringify(js_arr);

  • JS對象轉換成Json:var json_str = JSON.stringify(js_obj);

轉換成JS對象數組后可以使用JavaScript的方法和屬性處理該對象

  • JSON_Ajax.js

//1.創建異步對象var xhr = new XMLHttpRequest();//2.綁定監聽事件xhr.onreadystatechange = function(){    if(xhr.readyState ==4 && xhr.status == 200){        //result保存的是json字符串        var result = xhr.responseText;        //轉換js對象數組        var jschange = JSON.parse();        alert(jschange);    }}//3.打開鏈接var url = "/test/getajax?uname=" uname.value "&upwd=" upwd.value;//拼接URL字符串xhr.oprn("get",url,true);//4.發送請求xhr.send();

三、XML可擴展標記語言

XML(eXtensible Markup Language)的標簽是沒有被預定義過,需要用戶自定義,其用途是傳遞數據。

3.1 XML語法

  1. XML文件的聲明:<?xml version="1.0" encoding="UTF-8"?>

  2. 所有標簽必須成對出現,無單標簽

  3. 嚴格區分大小寫

  4. 標簽允許嵌套

  5. 每個標簽允許自定義屬性,屬性值用" "包括

  6. 每個XML文檔有且只有一個根元素

  • book.xml

<?xml version="1.0"? encoding="utf-8"><books><booklist>	<name>《時間簡史》</name>	<author>霍金</author></booklist><booklist>	<name>《三國演義》</name>	<author>羅貫中</author></booklist><booklist>	<name>《紅樓夢》</name>	<author>曹雪芹</author></booklist></books>
  • XML_Ajax.js

var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){    if(xhr.readyState == 4&&xhr.state == 200){        //books相當于XML里根目錄的books標簽,以下同理        var books = xhr.responseXML;        //得到booklist標簽的內容數組  var booklist = result.getElementsByTagName("booklist");        var name = books[1].getElementsByTagName("name")[0];        alert(name.innerHTML);    }}xhr.open("get","books.xml",true);xhr.send();

關鍵點:

  1. 獲取標簽數組 :getElementsBayTagName( ) 返回的是類數組,不可用JavaScript自帶數組API

  2. 讀取標簽內容:TagName.innerHTML

四、Ajax

Ajax(Asynchoronous Javascript And Xml)是使用JavaScript提供的異步對象,來異步向服務器發送請求,并接受響應回來的數據。它可以無刷新的效果更改頁面的布局內容。

2.1異步請求步驟

  1. 創建異步對象

  2. 綁定監聽事件(接受請求)

  3. 打開鏈接(創建請求)

  4. 發送請求

2.2 異步對象屬性和方法

  1. readyState屬性

    狀態值狀態的作用
    0請求未初始化
    1服務器已連接正在發送請求
    2接收響應頭
    3接收響應主體
    4響應數據接收成功
  2. statu 服務器響應狀態碼屬性

  3. onreadystatechange 監聽狀態事件,當readyState改變自動激活

  4. open( [method] , [url] , [isAsyn] ) 創建請求函數

  5. send( [body] ) 發送請求函數

  6. abort( ) 取消請求函數

  7. getAllResponseHeader( ) 獲取所有響應頭信息

  8. getResponseHeader( ) 獲取執行響應頭信息

  9. setRequestHeader( ) 設置請求的HTTP頭文件

  • GET請求方法的Ajax

//1.創建異步對象var xhr = new XMLHttpRequest();//2.綁定監聽事件xhr.onreadystatechange = function(){    if(xhr.readyState ==4 && xhr.status == 200){        //執行相關操作的代碼        var result = xhr.responseText;        alert(result);    }}//3.打開鏈接var url = "/test/getajax?uname=" uname.value "&upwd=" upwd.value;//拼接URL字符串xhr.oprn("get",url,true);//4.發送請求xhr.send();
  • POST請求方法的Ajax

  • postuser.html

<!DOCTYPE html><html lang="en"><head>	<meta charset="UTF-8">	<title>PostUser</title></head><body>	<input type="text" id="uname" name="uname">	<input type="submit" value="查詢" onclick="query()">	<div id = "show"></div>	<script>		var show = document.getElementById("show");		function query(){			//創異步對象			var xhr = new XMLHttpRequest();			//綁定監聽事件			xhr.onreadystatechange = function(){				if (xhr.readyState == 4 && xhr.status == 200){					show.innerHTML = xhr.responseText;			}		} 		var url = "/app/query";		//打開鏈接,以post方式		xhr.open("post",url,true);		//設置請求頭文件參數		xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");		//拼接請求主體		var formdata = "uname=" uname.value;		//發送帶有請求主體的請求		xhr.send(formdata);	}		</script></body></html>	
  • server.js

const express = require('express');//導入路由文件const querytxt = require('./routes/query.js');//創建服務器var server = express();//設置端口號server.listen(3000);//掛載靜態資源目錄server.use(express.static('./public'));//掛載/query 路由server.use('/app',querytxt);// '/query'
  • query.js

const express = require('express');//導入mysql模塊const mysql = require('mysql');//導入請求主體處理模塊const bodyParser = require('body-parser');//創建空路由var router = express.Router();//設置使用json解析 router.use(bodyParser.json());// 創建 application/x-www-form-urlencoded 編碼解析 router.use(bodyParser.urlencoded({extended:false}));//創建數據庫連接池var pool = mysql.createPool({	host:'127.0.0.1',	port:'3306',	user:'root',	password:'741852',	database:'tedu',	connectionLimit:10});//post方法查詢數據庫名稱路由router.post('/query',(req,res)=>{	var $uname = req.body.uname;	var sql = "select uname from login where uname=?"; 	pool.query(sql,[$uname],(err,result)=>{  		if(err) throw err;  		if(result.length > 0){  			res.send("用戶存在");  		}else{  			res.send("用戶不存在");  		}  	});});//導出路由module.exports = router;

優化的Ajax的代碼查看 JavaScript DOM技術專欄 第7篇文章

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
js基礎(一)
JavaScript EE,第 2 部分: 用 Ajax 調用遠程 JavaScript 函數
【轉】Chrome插件開發之一: 搭建基本結構
Ajax 相應數據格式與處理
12個常規前端面試題及小結
qt與ajax通信,AJAX發送GET和POST請求
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 郑州市| 密云县| 溧阳市| 阿城市| 安阳市| 东乌珠穆沁旗| 神池县| 芷江| 青神县| 汶川县| 平顶山市| 溆浦县| 会泽县| 嘉峪关市| 和田县| 紫金县| 金川县| 双城市| 天津市| 泰州市| 阿拉善左旗| 遂宁市| 炉霍县| 增城市| 潜江市| 临安市| 嘉义县| 清涧县| 丰顺县| 肥乡县| 西林县| 定南县| 仲巴县| 松滋市| 罗城| 田东县| 荃湾区| 合作市| 湘阴县| 吉木萨尔县| 镇安县|