PHP實(shí)現(xiàn)AJAX動(dòng)態(tài)網(wǎng)頁(yè)及相關(guān)函數(shù)詳解
AJAX
AJAX(Asynchronous JavaScript and xml)是一種用于創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù),該技術(shù)可以通過后臺(tái)與服務(wù)器進(jìn)行指定的數(shù)據(jù)交換,從而使得不必重新加載整個(gè)頁(yè)面情況下對(duì)網(wǎng)頁(yè)進(jìn)行局部刷新。
1. XMLHttpRequest對(duì)象
XMLHttpRequest 用于在后臺(tái)與服務(wù)器交換數(shù)據(jù)。
通過variable=new XMLHttpRequest()
創(chuàng)建新對(duì)象給變量variable。
//如果有request請(qǐng)求則創(chuàng)建新對(duì)象 if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 執(zhí)行代碼 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 執(zhí)行代碼 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
2. 發(fā)出請(qǐng)求的方法
xmlhttp.open("GET","test.php?q="+parameter,true); xmlhttp.send();
2.1XMLHttpRequest.open()
規(guī)定請(qǐng)求的類型、URL 以及是否異步處理請(qǐng)求。
Syntax
XMLHttpRequest.open(method, url, async, user, password)
Parameters
- method :對(duì)http請(qǐng)求類型,如
GET
,POST
,PUT
,HEAD
- url:文件在服務(wù)器地址
- async:是否選擇異步處理,默認(rèn)為true
- user, password (可選)用于身份認(rèn)證,默認(rèn)為null
2.2XMLHttpRequest.setRequestHeader()
設(shè)置HTTP請(qǐng)求頭部的方法。此方法必須在 open()
方法和 send()
之間調(diào)用
Syntax
XMLHttpRequest.setRequestHeader(header, value)
Parameter
header:屬性名稱
valueL:屬性的值
2.3 XMLHttpRequest.send()
發(fā)送請(qǐng)求至服務(wù)器
Syntax
XMLHttpRequest.send(str)
Parameter
str:如果請(qǐng)求方法是 GET 或者 HEAD,則應(yīng)將之設(shè)為null
3.XMLHttpRequest的響應(yīng)狀態(tài)
3.1XMLHttpRequest.readyState
返回代理請(qǐng)求當(dāng)前所處的狀態(tài)。
值 | 狀態(tài) | 描述 |
---|---|---|
0 | UNSENT | 代理被創(chuàng)建,但尚未調(diào)用 open() 方法。 |
1 | OPENED | open() 方法已經(jīng)被調(diào)用。 |
2 | HEADERS_RECEIVED | send() 方法已經(jīng)被調(diào)用,并且頭部和狀態(tài)已經(jīng)可獲得。 |
3 | LOADING | 下載中; responseText 屬性已經(jīng)包含部分?jǐn)?shù)據(jù)。 |
4 | DONE | 下載操作已完成。 |
3.2 XMLHttpRequest.status
返回請(qǐng)求響應(yīng)的數(shù)字狀態(tài)碼
值 | 狀態(tài) | 描述 |
---|---|---|
0 | UNSENT,OPENED | 請(qǐng)求未完成或者出錯(cuò) |
200 | Loading,DONE | 請(qǐng)求成功 |
4.處理函數(shù)
XMLHttpRequest.onreadystatechange
只要readystate屬性發(fā)生變換,就會(huì)調(diào)用出處理函數(shù)callback
Syntax
XMLHttpRequest.onreadystatechange = callback;
5. 簡(jiǎn)單示例
test.html
<!doctype html> <html lang='zh'> <meta charset="utf-8"> <head> <script> //自定義函數(shù)及參數(shù) function functest(parameter) { if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 執(zhí)行代碼 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 執(zhí)行代碼 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } //onreadystatechange存儲(chǔ)函數(shù)(或函數(shù)名),每當(dāng) readyState 屬性改變時(shí),就會(huì)調(diào)用該函數(shù) xmlhttp.onreadystatechange=function() { //xmlhttp.readyState==4 && xmlhttp.status==200表示請(qǐng)求完成并且成功返回 if (xmlhttp.readyState==4 && xmlhttp.status==200) { //通過 document.getElementById()調(diào)用標(biāo)簽寫入Value值。 document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } //通過get調(diào)用服務(wù)器test.php的頁(yè)面,‘q'為定義的加載到PHP頁(yè)面的變量 xmlhttp.open("GET","test.php?q="+parameter,true); xmlhttp.send(); } </script> </head> <body> <form> //每輸入一個(gè)值調(diào)用functest()函數(shù) 測(cè)試輸入: <input type="text" onkeyup="functest(this.value)"> </form> <p>返回值: <span id="txtHint" style ='color:red'></span></p> </body> </html>
test.php
<?php //從請(qǐng)求URL地址中獲取 q 參數(shù) $trans=$_GET["trans"]; //輸出返回值 echo "你好,陌生人。"; ?>
參考:
[Documenting web technologies, including CSS, HTML, and JavaScript](MDN Web Docs (mozilla.org))
總結(jié)
到此這篇關(guān)于PHP實(shí)現(xiàn)AJAX動(dòng)態(tài)網(wǎng)頁(yè)及相關(guān)函數(shù)詳解的文章就介紹到這了,更多相關(guān)PHP AJAX動(dòng)態(tài)網(wǎng)頁(yè)及相關(guān)函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php實(shí)現(xiàn)JWT(json web token)鑒權(quán)實(shí)例詳解
這篇文章主要介紹了php實(shí)現(xiàn)JWT(json web token)鑒權(quán)實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11destoon出現(xiàn)驗(yàn)證碼不顯示時(shí)的緊急處理方法
這篇文章主要介紹了destoon出現(xiàn)驗(yàn)證碼不顯示時(shí)的緊急處理方法,非常實(shí)用,需要的朋友可以參考下2014-08-08使用PHP?MySQL實(shí)現(xiàn)數(shù)據(jù)量小的內(nèi)容推薦方法
這篇文章主要為大家介紹了使用PHP?MySQL實(shí)現(xiàn)數(shù)據(jù)量小的內(nèi)容推薦方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07PHP加密技術(shù)的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇PHP加密技術(shù)的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-09-09詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法
本篇文章主要介紹了詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03laravel數(shù)據(jù)庫(kù)查詢結(jié)果自動(dòng)轉(zhuǎn)數(shù)組修改實(shí)例
這篇文章主要介紹了laravel數(shù)據(jù)庫(kù)查詢結(jié)果自動(dòng)轉(zhuǎn)數(shù)組修改實(shí)例,有需要的同學(xué)可以借鑒參考下2021-02-02