ajax是什么晚顷?
- Ajax的原理簡(jiǎn)單來(lái)說(shuō)是在用戶和服務(wù)器之間加了—個(gè)中間層(AJAX引擎)硼一,通過(guò)XmlHttpRequest對(duì)象來(lái)向服務(wù)器發(fā)異步請(qǐng)求激才,從服務(wù)器獲得數(shù)據(jù)鼓鲁,然后用javascript來(lái)操作DOM而更新頁(yè)面蕴轨。使用戶操作與服務(wù)器響應(yīng)異步化。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請(qǐng)求數(shù)據(jù)
- Ajax的過(guò)程只涉及JavaScript骇吭、XMLHttpRequest和DOM橙弱。XMLHttpRequest是ajax的核心機(jī)制
ajax過(guò)程
/** 1. 創(chuàng)建連接 **/
var xhr = null;
xhr = new XMLHttpRequest()
/** 2. 連接服務(wù)器 **/
xhr.open('get', url, true)
/** 3. 發(fā)送請(qǐng)求 **/
xhr.send(null);
/** 4. 接受請(qǐng)求 **/
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
success(xhr.responseText);
} else {
/** false **/
fail && fail(xhr.status);
}
}
}
ajax 有那些優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):
- 通過(guò)異步模式,提升了用戶體驗(yàn).
- 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸燥狰,減少不必要的數(shù)據(jù)往返棘脐,減少了帶寬占用.
- Ajax在客戶端運(yùn)行,承擔(dān)了一部分本來(lái)由服務(wù)器承擔(dān)的工作龙致,減少了大用戶量下的服務(wù)器負(fù)載蛀缝。
- Ajax可以實(shí)現(xiàn)動(dòng)態(tài)不刷新(局部刷新)
缺點(diǎn):
- 安全問(wèn)題 AJAX暴露了與服務(wù)器交互的細(xì)節(jié)。
- 對(duì)搜索引擎的支持比較弱目代。
- 不容易調(diào)試屈梁。