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ù)可以通過(guò)后臺(tái)與服務(wù)器進(jìn)行指定的數(shù)據(jù)交換,從而使得不必重新加載整個(gè)頁(yè)面情況下對(duì)網(wǎng)頁(yè)進(jìn)行局部刷新。
1. XMLHttpRequest對(duì)象
XMLHttpRequest 用于在后臺(tái)與服務(wù)器交換數(shù)據(jù)。
通過(guò)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)
{
//通過(guò) document.getElementById()調(diào)用標(biāo)簽寫入Value值。
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
//通過(guò)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í)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
destoon出現(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-07
PHP加密技術(shù)的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇PHP加密技術(shù)的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法
本篇文章主要介紹了詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
laravel數(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

