校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ajax原理總結(jié)附簡單實例及其優(yōu)點

ajax原理總結(jié)附簡單實例及其優(yōu)點

熱門標簽:青海醫(yī)療智能外呼系統(tǒng)怎么樣 徐州電銷卡外呼系統(tǒng)供應商 目標三維地圖標注 上海浦東百度地圖標注中心注冊 百靈鳥 科智聯(lián)智能電銷機器人 襄陽外呼系統(tǒng)接口 老虎郵局地圖標注點 外呼系統(tǒng)獲取客戶手機號
在工作中用了Ajax N多次了,也看過一些相關方面的書籍,也算是認識了它,但是一直沒有認真總結(jié)和整理過相關的東東,失敗!

近有閑情,將之總結(jié)如下:

【名稱】

Ajax是Asynchronous JavaScript and XML(以及 DHTML 等)的縮寫。
詳情請移步Ajax: A New Approach to Web Applications

【原理】

簡單一些,就是通過使用XmlHttpRequest對象向服務器發(fā)送異步請求,獲取返回的數(shù)據(jù),并使用Javascript和DOM操作頁面內(nèi)的元素,從而達到改變頁面內(nèi)容的目的。
其中XmlHttpRequest對象是關鍵,因為它支持異步請求。XMLHttpRequest是完全用來向服務器發(fā)出一個請求的。它所包含的方法和屬性如下所示:
方法:
abort() 導致當前正在請求被取消
getAllResponseHeaders() 返回一個字符串,包含氖 響應標頭的名稱和值
getResponseHeader(name) 返回指定的響應標頭的值
open(method, url, async, username, password) 設置請求的方法和目標URL。請求可以聲明為同步的(可選),也可以給需要基于窗口誰的請求而提供用戶名和口令(可選)
send(content) 發(fā)起帶有指定內(nèi)容(可選)的請求
setRequestHeader(name, value) 利用指定的名稱和值,設置一個請求標頭
屬性:
onreadystatechange 指派在請求的狀態(tài)發(fā)生變化時所使用的事件處理程序
readyState 一個整數(shù)值,指示請求的狀態(tài)如下:
0—-未初始化
1—-正在加載
2—-已加載
3—-交互
4—–完成
responseText 在響應里所返回的內(nèi)容
responseXML 如果內(nèi)容是XML,就根據(jù)內(nèi)容而創(chuàng)建XML DOM
status 從服務器所返回的響應狀態(tài)碼。例如:200表示成功,404表示未找到,參考HTTP規(guī)范
statusText 響應所返回的狀態(tài)文本消息
對于此對象其它介紹請移步:XMLHttpRequest概述

【所包含的技術】

· 基于XHTML和CSS標準的表示;
· 使用Document Object Model進行動態(tài)顯示和交互;
· 使用XMLHttpRequest與服務器進行異步通信;
· 使用JavaScript綁定一切;
· 使用XML和XSLT;交換和操作數(shù)據(jù)。
以上的技術都是一些廣泛使用了的技術,都屬于比較舊的技術,ajax是這幾種技術的結(jié)合體。

【簡單實例】
復制代碼 代碼如下:

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
html>
head>
title>/title>
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
script type="text/javascript">
function ajax() {
var xmlHttp;
// 依據(jù)對象判斷,而不是依據(jù)瀏覽器
if(window.XMLHttpRequest) {
xmlHttp=new XMLHttpRequest();//mozilla瀏覽器
}else if(window.ActiveXObject){
try{
xmlHttp=new ActiveXObject("Msxmlx2.XMLHTTP"); //IE老版本
}catch(e){}
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); //IE新版本
}catch(e){}

if(!xmlHttp){
window.alert("不能創(chuàng)建XMLHttpRequest對象實列");
return false;
}
}

if (!xmlHttp) {
alert("創(chuàng)建XMLHttpRequest對象失敗!");
return false;
}

xmlHttp.open('POST', 'index.php?get_a=2get_b=3', false);
xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=UTF-8;');
xmlHttp.send("post_a=1post_b=2");
xmlHttp.onreadystatechange = function() {
alert(xmlHttp.readyState);
}
if(xmlHttp.readyState == 4){ //判斷對象狀態(tài)
var content_obj = document.getElementById("content");
content_obj.innerHTML = "正在處理數(shù)據(jù)...";
if(xmlHttp.status == 200){ //信息已經(jīng)成功返回,開始處理信息
var returnStr = xmlHttp.responseText;
content_obj.innerHTML = returnStr;
}else{ //頁面不正常
content_obj.innerHTML = "您所請求的頁面存在異常!";
}
}
}
/script>
/head>
body>
input type="button" value="ajax" onclick="ajax();" />
div id="content">ajax內(nèi)容顯示區(qū)/div>
/body>
/html>

切記:當發(fā)起一個POST請求時,需要對報頭 Content-type(內(nèi)容類型)進行設置。這樣,服務器就知道如何來處理上傳的內(nèi)容。如果要模擬通過HTTP協(xié)議的POST方式來發(fā)送表單,則應將內(nèi)容類型設置為application/x-www-form-urlencoded。

【優(yōu)點】

頁面無刷新,用戶體驗好;
異步,不打斷用戶操作,響應速度快;
“按需取數(shù)據(jù)”,減少冗余請求,減輕服務器負擔;
基于標準化的并被廣泛支持的技術,無需額外的插件;
可以使數(shù)據(jù)和表現(xiàn)分離;
【存在的問題】
一些設備還不支持
開發(fā)成本提高
使back按鈕失效,用戶操作后無法返回;
對流媒體支持沒有flash之流好;
對搜索引擎不友好
破壞程序的異常機制
存在一些安全問題,暴露了一些程序接口和數(shù)據(jù)邏輯
您可能感興趣的文章:
  • ajax中文亂碼的各種解決辦法總結(jié)
  • ajax問題總結(jié) 比較全
  • Ajax與JSON的一些學習總結(jié)
  • ajax請求get與post的區(qū)別總結(jié)
  • ajax 入門基礎之 XMLHttpRequest對象總結(jié)
  • 關于ajax對象一些常用屬性、事件和方法大小寫比較常見的問題總結(jié)
  • 總結(jié)AJAX相關JS代碼片段和瀏覽器模型
  • 關于Ajax技術原理的3點總結(jié)
  • 使用ajax異步提交表單的幾種方法總結(jié)
  • 初學者必看的Ajax總結(jié)篇

標簽:股票 辛集 佛山 荊州 紅河 揭陽 咸寧 商洛

巨人網(wǎng)絡通訊聲明:本文標題《ajax原理總結(jié)附簡單實例及其優(yōu)點》,本文關鍵詞  ajax,原理,總結(jié),附,簡單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《ajax原理總結(jié)附簡單實例及其優(yōu)點》相關的同類信息!
  • 本頁收集關于ajax原理總結(jié)附簡單實例及其優(yōu)點的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 深泽县| 淳化县| 武冈市| 阿图什市| 松江区| 车险| 马尔康县| 保山市| 托克托县| 娄底市| 云浮市| 洛阳市| 舒城县| 新乐市| 玉山县| 德安县| 临湘市| 西宁市| 镇江市| 长沙市| 武安市| 江都市| 黎城县| 鹤山市| 江孜县| 子长县| 中宁县| 河曲县| 屯门区| 新营市| 绿春县| 武宣县| 开原市| 云安县| 汽车| 丽江市| 文安县| 肇东市| 河池市| 竹溪县| 南康市|