免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
01 Ajax知識(shí)點(diǎn)

Ajax

文章目錄

一、同步與異步

  1. 同步(Synchoronous): 一個(gè)任務(wù)在運(yùn)行中時(shí),不能進(jìn)行其他的任務(wù)

  2. 異步(Asynchoronous):在一個(gè)任務(wù)開(kāi)啟時(shí),可以開(kāi)啟其他任務(wù)

同步應(yīng)用場(chǎng)景異步應(yīng)用場(chǎng)景
網(wǎng)址訪問(wèn)用戶名驗(yàn)證
a標(biāo)簽跳轉(zhuǎn)聊天室
Submit表單提交百度搜索詞條建議

二、Json數(shù)據(jù)格式

2.1 JS對(duì)象數(shù)據(jù)格式

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

2.2 Json數(shù)據(jù)格式

Json(JavaScript Object Notation)是以JS對(duì)象的數(shù)據(jù)格式表示出來(lái)的字符串

  1. Json 使用{}表示一個(gè)對(duì)象

  2. Json 屬性名需要使用" "引起來(lái)

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

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

Json在Ajax中的應(yīng)用:

服務(wù)器查詢數(shù)據(jù)庫(kù)返回的 result 為JS對(duì)象數(shù)組,響應(yīng)傳輸給Ajax時(shí)被自動(dòng)轉(zhuǎn)換成Json字符串。

2.3 處理響應(yīng)的Json數(shù)據(jù)

  • Json字符串轉(zhuǎn)換成JS對(duì)象數(shù)組:var json_js = JSON.parse();

  • JS數(shù)組轉(zhuǎn)換成Json:JSON.stringify(js_arr);

  • JS對(duì)象轉(zhuǎn)換成Json:var json_str = JSON.stringify(js_obj);

轉(zhuǎn)換成JS對(duì)象數(shù)組后可以使用JavaScript的方法和屬性處理該對(duì)象

  • JSON_Ajax.js

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

三、XML可擴(kuò)展標(biāo)記語(yǔ)言

XML(eXtensible Markup Language)的標(biāo)簽是沒(méi)有被預(yù)定義過(guò),需要用戶自定義,其用途是傳遞數(shù)據(jù)。

3.1 XML語(yǔ)法

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

  2. 所有標(biāo)簽必須成對(duì)出現(xiàn),無(wú)單標(biāo)簽

  3. 嚴(yán)格區(qū)分大小寫(xiě)

  4. 標(biāo)簽允許嵌套

  5. 每個(gè)標(biāo)簽允許自定義屬性,屬性值用" "包括

  6. 每個(gè)XML文檔有且只有一個(gè)根元素

  • book.xml

<?xml version="1.0"? encoding="utf-8"><books><booklist>	<name>《時(shí)間簡(jiǎn)史》</name>	<author>霍金</author></booklist><booklist>	<name>《三國(guó)演義》</name>	<author>羅貫中</author></booklist><booklist>	<name>《紅樓夢(mèng)》</name>	<author>曹雪芹</author></booklist></books>
  • XML_Ajax.js

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

關(guān)鍵點(diǎn):

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

  2. 讀取標(biāo)簽內(nèi)容:TagName.innerHTML

四、Ajax

Ajax(Asynchoronous Javascript And Xml)是使用JavaScript提供的異步對(duì)象,來(lái)異步向服務(wù)器發(fā)送請(qǐng)求,并接受響應(yīng)回來(lái)的數(shù)據(jù)。它可以無(wú)刷新的效果更改頁(yè)面的布局內(nèi)容。

2.1異步請(qǐng)求步驟

  1. 創(chuàng)建異步對(duì)象

  2. 綁定監(jiān)聽(tīng)事件(接受請(qǐng)求)

  3. 打開(kāi)鏈接(創(chuàng)建請(qǐng)求)

  4. 發(fā)送請(qǐng)求

2.2 異步對(duì)象屬性和方法

  1. readyState屬性

    狀態(tài)值狀態(tài)的作用
    0請(qǐng)求未初始化
    1服務(wù)器已連接正在發(fā)送請(qǐng)求
    2接收響應(yīng)頭
    3接收響應(yīng)主體
    4響應(yīng)數(shù)據(jù)接收成功
  2. statu 服務(wù)器響應(yīng)狀態(tài)碼屬性

  3. onreadystatechange 監(jiān)聽(tīng)狀態(tài)事件,當(dāng)readyState改變自動(dòng)激活

  4. open( [method] , [url] , [isAsyn] ) 創(chuàng)建請(qǐng)求函數(shù)

  5. send( [body] ) 發(fā)送請(qǐng)求函數(shù)

  6. abort( ) 取消請(qǐng)求函數(shù)

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

  8. getResponseHeader( ) 獲取執(zhí)行響應(yīng)頭信息

  9. setRequestHeader( ) 設(shè)置請(qǐng)求的HTTP頭文件

  • GET請(qǐng)求方法的Ajax

//1.創(chuàng)建異步對(duì)象var xhr = new XMLHttpRequest();//2.綁定監(jiān)聽(tīng)事件xhr.onreadystatechange = function(){    if(xhr.readyState ==4 && xhr.status == 200){        //執(zhí)行相關(guān)操作的代碼        var result = xhr.responseText;        alert(result);    }}//3.打開(kāi)鏈接var url = "/test/getajax?uname=" uname.value "&upwd=" upwd.value;//拼接URL字符串xhr.oprn("get",url,true);//4.發(fā)送請(qǐng)求xhr.send();
  • POST請(qǐng)求方法的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(){			//創(chuàng)異步對(duì)象			var xhr = new XMLHttpRequest();			//綁定監(jiān)聽(tīng)事件			xhr.onreadystatechange = function(){				if (xhr.readyState == 4 && xhr.status == 200){					show.innerHTML = xhr.responseText;			}		} 		var url = "/app/query";		//打開(kāi)鏈接,以post方式		xhr.open("post",url,true);		//設(shè)置請(qǐng)求頭文件參數(shù)		xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");		//拼接請(qǐng)求主體		var formdata = "uname=" uname.value;		//發(fā)送帶有請(qǐng)求主體的請(qǐng)求		xhr.send(formdata);	}		</script></body></html>	
  • server.js

const express = require('express');//導(dǎo)入路由文件const querytxt = require('./routes/query.js');//創(chuàng)建服務(wù)器var server = express();//設(shè)置端口號(hào)server.listen(3000);//掛載靜態(tài)資源目錄server.use(express.static('./public'));//掛載/query 路由server.use('/app',querytxt);// '/query'
  • query.js

const express = require('express');//導(dǎo)入mysql模塊const mysql = require('mysql');//導(dǎo)入請(qǐng)求主體處理模塊const bodyParser = require('body-parser');//創(chuàng)建空路由var router = express.Router();//設(shè)置使用json解析 router.use(bodyParser.json());// 創(chuàng)建 application/x-www-form-urlencoded 編碼解析 router.use(bodyParser.urlencoded({extended:false}));//創(chuàng)建數(shù)據(jù)庫(kù)連接池var pool = mysql.createPool({	host:'127.0.0.1',	port:'3306',	user:'root',	password:'741852',	database:'tedu',	connectionLimit:10});//post方法查詢數(shù)據(jù)庫(kù)名稱路由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("用戶不存在");  		}  	});});//導(dǎo)出路由module.exports = router;

優(yōu)化的Ajax的代碼查看 JavaScript DOM技術(shù)專欄 第7篇文章

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
js基礎(chǔ)(一)
JavaScript EE,第 2 部分: 用 Ajax 調(diào)用遠(yuǎn)程 JavaScript 函數(shù)
【轉(zhuǎn)】Chrome插件開(kāi)發(fā)之一: 搭建基本結(jié)構(gòu)
Ajax 相應(yīng)數(shù)據(jù)格式與處理
12個(gè)常規(guī)前端面試題及小結(jié)
qt與ajax通信,AJAX發(fā)送GET和POST請(qǐng)求
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服