婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ajax基礎(chǔ)詳解教程(一)

Ajax基礎(chǔ)詳解教程(一)

熱門標(biāo)簽:越南河內(nèi)地圖標(biāo)注 ai機(jī)器人電銷資源 地圖標(biāo)注項目怎么樣 個人怎樣在百度地圖標(biāo)注地名 超級大富翁地圖標(biāo)注 硅語電話機(jī)器人公司 云呼外撥網(wǎng)絡(luò)電話系統(tǒng) 騰訊地圖標(biāo)注位置能用多久 機(jī)器人電銷騙局揭秘

什么是Ajax?

在研究ajax之前首先讓我們先來討論一個問題 ——什么是Web 2.0 。聽到 Web 2.0 這個詞的時候,應(yīng)該首先問一問 “Web 1.0 是什么?” 雖然很少聽人提到 Web 1.0,實際上它指的就是具有完全不同的請求和響應(yīng)模型的傳統(tǒng) Web。比如,到 hdu.edu.cn 網(wǎng)站上點擊一個按鈕。就會對服務(wù)器發(fā)送一個請求,然后響應(yīng)再返回到瀏覽器。該請求不僅僅是新內(nèi)容和項目列表,而是另一個完整的 HTML 頁面。因此當(dāng) Web 瀏覽器用新的 HTML 頁面重繪時,可能會看到閃爍或抖動。事實上,通過看到的每個新頁面可以清晰地看到請求和響應(yīng)。

Ajax也是前端必備技能了,學(xué)習(xí)任何語言,都需要以理論為基礎(chǔ)的大量實踐才能真正學(xué)會,之前學(xué)了Ajax很多遍,因為缺乏大量實踐,總是會忘。所以不實踐是失敗之母。。。當(dāng)然理論基礎(chǔ)也很重要啦,今天談?wù)勎覍jax的基礎(chǔ)認(rèn)知。

定義:全稱:Asynchronous JavaScript and XML(用異步的形式的JavaScript去操作XML) 用來傳輸進(jìn)行數(shù)據(jù)交互 其實就是拿數(shù)據(jù)發(fā)數(shù)據(jù)。

應(yīng)用:我們來想想我們編寫的HTML代碼的時候,當(dāng)我們改變了里面內(nèi)容了并且想看效果的時候,是不是先保存,然后去瀏覽器刷新頁面,而Ajax就是做到當(dāng)頁面內(nèi)容發(fā)生改變的時候能不刷新頁面,就能把改變告知我們。比如,我們注冊的時候信息填寫錯誤,是不是沒刷新頁面就能直接看到信息提示,比如我們玩QQ的時候,有什么消息都會提醒你,絲毫沒有刷新頁面,絲毫沒有影響你干別的事情,這就是Ajax做的事情。

下面我們先不解析具體的原理,先來看一個大致的實現(xiàn)過程。

當(dāng)然首先,你得知道是把代碼放在服務(wù)器下運行的,打開的時候不能用本地的地址,要用localhost/。。這種形式才是在服務(wù)下訪問的。要是這不了解的話,可以先自行百度下。

栗子需求:新建一個文字1.txt,隨便輸入什么內(nèi)容,新建HTML頁面,點擊頁面里的按鈕獲取1.txt里面的內(nèi)容

var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
var xhr = new XMLHttpRequest(); //創(chuàng)建Ajax對象
xhr.open('get','1.txt',true); //設(shè)置請求信息 
xhr.send();//提交請求
//等待服務(wù)器返回內(nèi)容
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
alert( xhr.responseText ); //彈出內(nèi)容
} 
} 
}

當(dāng)點擊按鈕的時候,你會發(fā)現(xiàn)彈出了1.txt里面的內(nèi)容。

我們來具體解析一下這個步驟

var xhr = new XMLHttpRequest(); //創(chuàng)建Ajax對象

我們要用Ajax獲取數(shù)據(jù),首先呢,要創(chuàng)建一個Ajax對象,就跟你想獲取系統(tǒng)時間要創(chuàng)建一個時間對象是一個道理。對象的名稱就是 XMLHttpRequest(),創(chuàng)建好之后我們就可以用對象下的方法屬性進(jìn)行數(shù)據(jù)交互了。

需要說明的是,這個對象實際是存在兼容問題的,IE6以下沒有這個對象的,所以是獲取不到數(shù)據(jù)的,IE6以下用的實際是一個插件的方式:

ActiveXObject(‘Microsoft.XMLHTTP') 
//ActiveXObject: IE6下插件的總稱,包含很多插件
//Microsoft.XMLHTTP:具體某個插件的名字

所以我們需要對上面做一個兼容性的處理:

var xhr = null;
if(window.XMLHttpRequest){ //加window是因為如果直接判斷IE下不存在的東西會報錯,加了window,就是在判斷一個屬性是否存在,這樣就不會報錯了(當(dāng)然我們都知道所有的東西都在window對象下,所以這樣判斷是有效的)
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject(‘Microsoft.XMLHTTP');
}

接著看

xhr.open('get','1.txt',true); //設(shè)置請求信息

Open方法

三個參數(shù)的含義

1、提交方式 Form-method(get/post)

2、提交地址 Form-action

3、是否異步,是為(true)

首先講提交方式:get/post 這兩種的區(qū)別。

這里我們不用ajax的方式,先直接通過傳統(tǒng)的表單提交數(shù)據(jù)來分析。

傳統(tǒng)的表單提交就是在表單里面設(shè)置提交的一些參數(shù),用戶的信息輸入提交,會跳到指定后臺的頁面。

表單的參數(shù):

action:提交到哪里 默認(rèn)是當(dāng)前頁面

method:提交方式 默認(rèn)是Get

enctype: 提交的數(shù)據(jù)格式,默認(rèn)是application/x-www-form-urlencoded

我們來具體看個get方式請求的栗子,并且了解前后端到底是怎么交互的。

栗子需求:建立HTML頁面,PHP頁面,填入數(shù)據(jù),點擊提交,然后輸出我們輸入的內(nèi)容。

HTML頁面:

form action="1.get.php">
input type="text" name="username">
input type="text" name="age">
input type="submit" value="按鈕" />
/form>

1.get.php(如果不了解PHP語言,大概看下面的注釋簡單知道干啥就行了)

?php
header('content-type:text/html;charset="utf-8"'); //設(shè)置編碼格式,以及文檔類型
error_reporting(0);
$username = $_GET['username'];//獲取get請求方式的數(shù)據(jù)
$age = $_GET['age'];
echo "你的名字:{$username},年齡:{$age}"; //輸出內(nèi)容

觀察實驗結(jié)果,當(dāng)點擊按鈕,頁面會跳到1.get.php頁面,把內(nèi)容輸出。并且觀察上面的地址欄,會發(fā)現(xiàn)我們輸入的信息被放在了地址欄上。

其實整個GET請求過程是這樣的。

1 輸入用戶信息,點擊提交,跳到指定后臺的頁面

2 GET方式會把用戶輸入的數(shù)據(jù)名稱和對應(yīng)的值以這樣的格式(username=valueage=value )串連起來,放在指定后臺頁面的地址欄的問號(?)后面。

3 后臺的代碼 通過PHP語言中的$_GET方法,獲取到地址欄中的用戶信息,$_GET['username']; $_GET['age'];然后賦給變量,輸出信息。

由此,我們可以知道GET方式:

1 把數(shù)據(jù)名稱和對應(yīng)的值串連(username=valueage=value ),然后把數(shù)據(jù)放到指定頁面的url地址?后面。

2 我們其實完全可以在后臺頁面的地址欄上手動更改用戶信息,相應(yīng)的輸出也會變化。因為后臺代碼是從地址欄中獲取的信息。

所以也因為這樣,這種傳輸方式,是不安全的,

GET方式還有一些其他的特點:

3 因為url有長度限制原因 Get請求的方式有數(shù)據(jù)量限制,每個瀏覽器都不同,所以不要用這種方式傳遞過長的數(shù)據(jù)。不然會被截取,導(dǎo)致傳遞數(shù)據(jù)不完整。

4 只能傳遞字符串類型

下面來看看POST方式,同樣是這樣的需求

HTML頁面:

form action="1.get.php" method="post">
input type="text" name="username">
input type="text" name="age">
input type="submit" value="按鈕" />
/form>

1.get.php

?php
header('content-type:text/html;charset="utf-8"');
error_reporting(0);
$username = $_POST['username'];//不同的請求方式方法不同,$_POST方法專門用來獲取POST方式請求的數(shù)據(jù) $age = $_POST['age']; echo "你的名字:{$username},年齡:{$age}";


1.輸入頁面,跟前面一樣就沒有截取,輸出信息頁面,我們可以看到,地址欄上已經(jīng)沒有用戶信息了,但頁面還是輸出了用戶信息。那從哪看出傳遞的過程呢?

其實在傳遞數(shù)據(jù)的過程中,瀏覽器還會向服務(wù)端(后臺)發(fā)送一個請求頭包含一些請求的信息(GET請求也有頭部信息),我們打開開發(fā)者工具,找到網(wǎng)絡(luò)就可以看到我們的請求,點進(jìn)去就是具體內(nèi)容,看上面的第二種圖,可以看到一些請求信息,有請求的編碼格式,還有請求地址等,具體可以自己私下了解。

我們看第三張圖,可以看到請求的數(shù)據(jù),上面的其實是瀏覽器已經(jīng)按照某種格式輸入的信息,下面的源代碼才是實際傳遞的信息,可以看到串連的格式和GET請求是一樣的,不過把用戶名加密了,更加安全了。

由此我們可以知道

Post請求

1 數(shù)據(jù)的串連格式和Get請求是一樣的

2 通過請求頭信息 通過瀏覽器內(nèi)部傳輸:

還有別的區(qū)別就是

3 傳輸數(shù)據(jù)量 Post理論上無限

4 可以傳遞多種數(shù)據(jù)類型(文本類型,二進(jìn)制)

還有一定是后端獲取數(shù)據(jù)格式不僅有 $_GET, $_POST還有一個 3 $_REQUEST 可以獲取任何提交方式的數(shù)據(jù) 。

我們需要注意的是數(shù)據(jù)傳輸方式 和 數(shù)據(jù)獲取方式 必須保持一致才能成功獲取

關(guān)于Open方法的第一個參數(shù)提交方式就講到這里,第二個地址先簡單了解,下面來看第三個參數(shù)關(guān)于異步和同步。

同步:就是一種阻塞模式,比如代碼var a =1 ;alert(a);這就是一種同步,必須執(zhí)行了第一種var a =1,你才會彈出a的值。

缺點:一般當(dāng)你后面的代碼需要用到前面的東西的時候 適合用同步 ,但用的很少,因為后面的代碼都要等前面,體驗是不好的。

異步:就是一種非阻塞模式,最明顯的例子,就是定時器,當(dāng)我們寫了一個30s后執(zhí)行的定時器的時候,在30S內(nèi)其實后面的代碼是可以執(zhí)行的,而不是過了30s后面代碼才能執(zhí)行,這就是一種異步。

缺點:當(dāng)你后面的代碼需要用到前面的東西的時候 如果用異步,那么后面的代碼會在前面還沒加載好就出來,可能會有問題。幸運的是我們可以解決。

解決:當(dāng)你后面的代碼需要用到前面的東西的時候,可以用條件判斷來決定這些代碼的執(zhí)行,如果條件達(dá)成了就可以執(zhí)行。

還拿上面的舉個栗子

var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject(‘Microsoft.XMLHTTP');
}
xhr.open('get','1.txt',true); //設(shè)置請求信息 
xhr.send();//提交請求
//等待服務(wù)器返回內(nèi)容 這里后面會具體講,大概就是監(jiān)聽服務(wù)器的狀態(tài),先簡單了解即可
xhr.onreadystatechange = function() { 
if ( xhr.readyState == 4 ) { //如果對接收到的數(shù)據(jù)相應(yīng)到,并解析完成
alert( xhr.responseText ); //彈出內(nèi)容 
} 
}
}

在上面的代碼中xhr.send()提交請求是需要時間的,所以必須要等到一定時間提交成功后,我們后面的才能正確獲取到內(nèi)容,所以這就是后面的代碼正確執(zhí)行,依賴于前面,但是如果用同步的話,我們后面那些不依賴這些前面代碼的代碼也沒辦法執(zhí)行,體驗就不好了,所以我們選擇用異步,而對于這些依賴前面代碼執(zhí)行的代碼,我們就進(jìn)行判斷

if ( xhr.readyState == 4 )就是判斷如果數(shù)據(jù)響應(yīng)到了,收到了,再彈出內(nèi)容。(如果我們不判斷,按照異步的原理,就會立馬彈出來,獲取數(shù)據(jù)需要時間,因為實際還沒獲取到數(shù)據(jù),所以會彈出空,怕誤解,所以這里我再強(qiáng)調(diào)下).

以上所述是小編給大家介紹的Ajax基礎(chǔ)詳解教程(一)的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Jquery之Ajax運用 學(xué)習(xí)運用篇
  • AJAX應(yīng)用中必須要掌握的重點知識(分享)

標(biāo)簽:遼源 林芝 舟山 鄭州 海南 內(nèi)蒙古 洛陽 邢臺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax基礎(chǔ)詳解教程(一)》,本文關(guān)鍵詞  Ajax,基礎(chǔ),詳解,教程,一,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax基礎(chǔ)詳解教程(一)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ajax基礎(chǔ)詳解教程(一)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩一二在线观看| 91在线视频在线| 亚洲色图制服丝袜| 国产亚洲va综合人人澡精品| 欧美另类z0zxhd电影| 色欲综合视频天天天| 91在线观看免费视频| 成人av高清在线| 99久久亚洲一区二区三区青草| 国产成人在线影院| 大白屁股一区二区视频| 成人免费观看视频| 日本丶国产丶欧美色综合| 在线免费观看视频一区| 7777精品伊人久久久大香线蕉完整版| 欧美福利视频导航| 欧美成人三级电影在线| 久久先锋影音av| 中文乱码免费一区二区| 一区二区三区在线不卡| 视频一区二区中文字幕| 国产一区二区三区免费看| 国产99久久精品| 91视频91自| 91精品在线观看入口| 欧美精品一区二区三区蜜臀| 国产精品动漫网站| 亚洲国产精品久久一线不卡| 蜜桃av噜噜一区二区三区小说| 国产综合久久久久久久久久久久| 国产91精品一区二区麻豆亚洲| 色94色欧美sute亚洲线路二 | www.亚洲色图.com| 99国产精品99久久久久久| 欧美揉bbbbb揉bbbbb| 欧美mv和日韩mv国产网站| 国产日韩欧美精品一区| 亚洲制服丝袜一区| 欧美a级一区二区| 成人国产亚洲欧美成人综合网| www.久久精品| 精品国产凹凸成av人网站| 日韩美女视频19| 蜜臀久久久久久久| 色香蕉久久蜜桃| 日韩三级伦理片妻子的秘密按摩| 国产精品无码永久免费888| 午夜精品久久久久久久99樱桃| 国产一区二区美女诱惑| 欧美日韩国产小视频在线观看| 国产性色一区二区| 另类专区欧美蜜桃臀第一页| 91小视频在线观看| 久久青草国产手机看片福利盒子| 亚洲精品日日夜夜| 懂色av一区二区三区蜜臀| 欧美日韩成人高清| 一区二区在线电影| 99精品视频免费在线观看| 久久综合网色—综合色88| 免费看日韩精品| 欧美猛男gaygay网站| 亚洲欧洲另类国产综合| 国产成人精品1024| 精品福利av导航| 九一久久久久久| 91精品福利在线一区二区三区 | 精品一区二区三区久久久| 欧美日韩在线播| 亚洲男女一区二区三区| 成+人+亚洲+综合天堂| 国产亚洲成年网址在线观看| 国产精品99久久久久久似苏梦涵 | 在线观看成人免费视频| 亚洲欧洲av在线| 不卡的电影网站| 国产精品欧美极品| 成人一级黄色片| 欧美激情在线看| 国产.欧美.日韩| 国产精品色婷婷| 91视视频在线观看入口直接观看www | 国产成人精品影院| 国产欧美视频在线观看| 成人午夜电影小说| 国产精品国产三级国产a| 成人免费高清在线| 一区二区三区在线视频免费| 日本精品一区二区三区高清 | 91精品国产综合久久久久久| bt欧美亚洲午夜电影天堂| 国产精品福利一区二区三区| 91视频免费播放| 亚洲成人免费在线观看| 欧美精品视频www在线观看| 老司机免费视频一区二区三区| 日韩一区二区免费高清| 丁香婷婷综合网| 亚洲已满18点击进入久久| 欧美日韩国产精选| 久久超级碰视频| 中文字幕在线视频一区| 91久久免费观看| 麻豆一区二区三| 亚洲欧美自拍偷拍| 9191久久久久久久久久久| 国产综合色在线| 一区二区三区在线播| 日韩三区在线观看| 国产成a人亚洲精品| 亚洲国产日韩一级| 欧美成人在线直播| 99视频一区二区| 奇米777欧美一区二区| 中文字幕成人网| 717成人午夜免费福利电影| 国产成人免费在线观看不卡| 亚洲国产日韩在线一区模特| 久久久国际精品| 在线观看91av| 91在线观看视频| 国产一区二区在线电影| 亚洲成人tv网| 亚洲男人的天堂在线观看| 精品日韩在线一区| 欧美日本一区二区三区四区| 成人福利视频在线| 蜜臀久久99精品久久久久宅男| 国产精品麻豆久久久| 欧美xxxxx牲另类人与| 欧洲精品一区二区| 成人av电影免费在线播放| 激情成人午夜视频| 五月天亚洲精品| 一区二区三区四区五区视频在线观看 | 日本一区中文字幕| 亚洲乱码日产精品bd| 久久久久久夜精品精品免费| 欧美精品vⅰdeose4hd| 成人网在线播放| 国产呦萝稀缺另类资源| 麻豆freexxxx性91精品| 日韩精品久久久久久| 婷婷一区二区三区| 亚洲成av人在线观看| 依依成人综合视频| 亚洲青青青在线视频| 国产精品美女久久久久久久久久久| xf在线a精品一区二区视频网站| 欧美一区二区三区在线观看视频| 欧美精品亚洲二区| 欧美欧美午夜aⅴ在线观看| 欧美日韩一区二区不卡| 欧美中文字幕亚洲一区二区va在线 | 99re热这里只有精品视频| 成人丝袜视频网| 成人的网站免费观看| 成人在线一区二区三区| www.av精品| 欧美亚洲综合在线| 欧美调教femdomvk| 91精品国产综合久久精品图片| 欧美精品视频www在线观看| 亚洲精品免费在线观看| 一区二区三区四区在线播放| 午夜视频一区二区| 日本亚洲三级在线| 国产精品91一区二区| 95精品视频在线| 欧美日韩中文另类| 欧美成人一级视频| 国产精品久久久久aaaa樱花| 亚洲免费毛片网站| 亚洲bdsm女犯bdsm网站| 男女激情视频一区| 成人h动漫精品一区二区| 色哟哟日韩精品| 欧美一区二区三区在线电影| 精品日产卡一卡二卡麻豆| 中文字幕在线不卡一区二区三区| 自拍偷拍国产精品| 日韩二区三区在线观看| 国产精品一区二区久激情瑜伽| 波多野结衣亚洲| 91.com视频| 国产精品美女久久久久久久 | 岛国av在线一区| 欧美艳星brazzers| 久久精品夜色噜噜亚洲a∨| 中文字幕日韩一区二区| 午夜国产精品一区| 国产成人在线视频免费播放| 色婷婷av一区二区三区gif| 欧美成人国产一区二区| 国产精品福利一区二区三区| 日韩激情av在线| 色综合中文字幕国产| 91精品国产丝袜白色高跟鞋| 中文字幕乱码久久午夜不卡| 日本中文字幕一区|