head rush ajax chapter1 Ajax
生活随笔
收集整理的這篇文章主要介紹了
head rush ajax chapter1 Ajax
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Head Rush Ajax 本書特點也是好書的特點:
1.多用圖表 2.以對話的形式描述 3.用不同的方式重復(fù)? 4.做活動,做事情時的學(xué)習(xí)效果比讀東西的效果更佳,把習(xí)題變成挑戰(zhàn) 5.用故事而不是書面語
讀書方法:慢慢來,理解越多,必須強記的就越少,多思考,想象有人在問你這個問題,你如何回答,多做練習(xí),寫下心得筆記,多喝水,給大腦時間處理新知識,把要理解的東西說出來,解釋給別人聽。當大腦覺得負荷過重時適當休息,用心感受讓大腦知道這一切很重要,任何感覺對學(xué)習(xí)效果都有幫助。
Asynchronous Javascript and XML
傳統(tǒng)web是一次請求服務(wù)器產(chǎn)生一個新的頁面,然后重載整個頁面。
Ajax中JavaScript負責與server對話,只改變頁面中需要響應(yīng)的部分,取代傳統(tǒng)的web表單。異步工作:JS送出請求給server后,仍然可以在表單中填入數(shù)據(jù),代碼只更新需要改變的部分。
<div>可以持有相關(guān)元素的容器元素,可以使用一個CSS規(guī)則統(tǒng)一所有樣式
<span>可以裝飾文本且不必開始一個新的段落或塊
JavaScript可以使用<標簽>的id,從而實現(xiàn)局部控制。
Ajax應(yīng)用程序中,服務(wù)器通常只會送出你需要的數(shù)據(jù),而沒有其他的HTML。可以使用JS發(fā)出同步或異步請求。瀏覽器一直都知道請求處于何種狀態(tài),JavaScript可以從readystate取得這種信息。
使用JS對象做出請求,而不是提交表單,真正的請求與響應(yīng)是由Web瀏覽器處理,而不是直接由JavaScript代碼處理。一旦Web瀏覽器得到異步請求的響應(yīng),就會運行一個回調(diào)函數(shù)(callback function),
1.調(diào)用createRequest()創(chuàng)建一個新的請求對象request
2.搞清楚需要連接到哪個URL,以取得數(shù)據(jù)request.open("GET",url,true)
3.設(shè)定請求對象以產(chǎn)生鏈接
4.請求更新過的數(shù)據(jù) request.send(null);
5.在頁面中激發(fā)請求事件 onClick="getBoardssold()"
6.瀏覽器向server發(fā)出請求;之后瀏覽獲得server的響應(yīng),存儲在請求
7.根據(jù)請求狀態(tài)的改變觸發(fā)相應(yīng)的處理函數(shù) request.onreadystatechange=函數(shù)名
8.處理函數(shù)得到的響應(yīng)數(shù)據(jù) var new = request.responseText;
9.通過DOM動態(tài)更新相關(guān)元素數(shù)值
由于請求有多個狀態(tài)因此可以在處理函數(shù)前,先判斷是否達到完成響應(yīng)狀態(tài) if(request.readystate==4)
得到一個元素 var price1 = document.getElementById("price");
對于表單字段才有value屬性,一般的元素則沒有。 document通過元素id訪問每個元素
function getCustomerInfo(){
var phone = document.getElementById("phone").value;
createRequest();? //創(chuàng)建請求對象
var url="lookup Customer.php?phone="+escape(phone);? //雙引號,修改后會產(chǎn)生安全問題
request.open("GET",url,true);
request.onreadystatechange=updatePage;
request.send(null);? //除了url不用發(fā)送別的東西?? ?
}
html中<head>塊中的任何JavaScript代碼會在頁面加載前執(zhí)行,只要browser發(fā)現(xiàn)JS代碼(獨立于函數(shù)之外靜態(tài)JS)就會被運行,JS的escape()函數(shù)可以將不合法的字符用其他方式替換掉如空格被轉(zhuǎn)為%20
回調(diào):一個事件發(fā)生時所觸發(fā)的那個函數(shù)
readystate: 0:尚未被初始化的連接 在open之前 1:open之后,則已經(jīng)初始化? 2. 處理中的響應(yīng)? 3:取得服務(wù)器響應(yīng),但無法使用 4:server的響應(yīng)就續(xù),可以通過reponseText屬性取得響應(yīng)數(shù)據(jù)。瀏覽器一直都知道請求處于何種狀態(tài),而JavaScript可以取得這些信息
瀏覽器的多此一舉:如果你對服務(wù)器端程序作出請求,IE會持續(xù)追蹤你所請求的URL,然后如果你又對相同的URL發(fā)出請求(且數(shù)據(jù)一樣)IE會認定你想得到相同的響應(yīng),所以IE不會發(fā)出此請求,而是把上次請求的響應(yīng)(在緩存中)拿出來重復(fù)使用,所以可以在url中加入虛擬的參數(shù)從而改變url例如:
url = url + "?dummy="+new Date().getTime();
當然不是所有的請求都要這樣處理,如通過電話確定地址,相同的電話得到相同的對應(yīng)的地址會更快些。
對于IE請求對象是ActiveXObject使用Msxml2.XMLHTTP或Microsoft.XMLHTTP而其他瀏覽器是XMLHttpRequest
request.state :請求的就緒狀態(tài)
request.status==200 :用來報告來自服務(wù)器的狀態(tài)碼
如果請求的url在server上找不到,瀏覽器一定還會運行回調(diào)函數(shù),這樣才能對server的響應(yīng)進行處置。
Ajax工具包: prototype, Dojo??? JS UI: script.ac.ulo.us,? Rico? Dom查看器(inspector)
1.多用圖表 2.以對話的形式描述 3.用不同的方式重復(fù)? 4.做活動,做事情時的學(xué)習(xí)效果比讀東西的效果更佳,把習(xí)題變成挑戰(zhàn) 5.用故事而不是書面語
讀書方法:慢慢來,理解越多,必須強記的就越少,多思考,想象有人在問你這個問題,你如何回答,多做練習(xí),寫下心得筆記,多喝水,給大腦時間處理新知識,把要理解的東西說出來,解釋給別人聽。當大腦覺得負荷過重時適當休息,用心感受讓大腦知道這一切很重要,任何感覺對學(xué)習(xí)效果都有幫助。
Asynchronous Javascript and XML
傳統(tǒng)web是一次請求服務(wù)器產(chǎn)生一個新的頁面,然后重載整個頁面。
Ajax中JavaScript負責與server對話,只改變頁面中需要響應(yīng)的部分,取代傳統(tǒng)的web表單。異步工作:JS送出請求給server后,仍然可以在表單中填入數(shù)據(jù),代碼只更新需要改變的部分。
<div>可以持有相關(guān)元素的容器元素,可以使用一個CSS規(guī)則統(tǒng)一所有樣式
<span>可以裝飾文本且不必開始一個新的段落或塊
JavaScript可以使用<標簽>的id,從而實現(xiàn)局部控制。
Ajax應(yīng)用程序中,服務(wù)器通常只會送出你需要的數(shù)據(jù),而沒有其他的HTML。可以使用JS發(fā)出同步或異步請求。瀏覽器一直都知道請求處于何種狀態(tài),JavaScript可以從readystate取得這種信息。
使用JS對象做出請求,而不是提交表單,真正的請求與響應(yīng)是由Web瀏覽器處理,而不是直接由JavaScript代碼處理。一旦Web瀏覽器得到異步請求的響應(yīng),就會運行一個回調(diào)函數(shù)(callback function),
1.調(diào)用createRequest()創(chuàng)建一個新的請求對象request
2.搞清楚需要連接到哪個URL,以取得數(shù)據(jù)request.open("GET",url,true)
3.設(shè)定請求對象以產(chǎn)生鏈接
4.請求更新過的數(shù)據(jù) request.send(null);
5.在頁面中激發(fā)請求事件 onClick="getBoardssold()"
6.瀏覽器向server發(fā)出請求;之后瀏覽獲得server的響應(yīng),存儲在請求
7.根據(jù)請求狀態(tài)的改變觸發(fā)相應(yīng)的處理函數(shù) request.onreadystatechange=函數(shù)名
8.處理函數(shù)得到的響應(yīng)數(shù)據(jù) var new = request.responseText;
9.通過DOM動態(tài)更新相關(guān)元素數(shù)值
由于請求有多個狀態(tài)因此可以在處理函數(shù)前,先判斷是否達到完成響應(yīng)狀態(tài) if(request.readystate==4)
得到一個元素 var price1 = document.getElementById("price");
對于表單字段才有value屬性,一般的元素則沒有。 document通過元素id訪問每個元素
function getCustomerInfo(){
var phone = document.getElementById("phone").value;
createRequest();? //創(chuàng)建請求對象
var url="lookup Customer.php?phone="+escape(phone);? //雙引號,修改后會產(chǎn)生安全問題
request.open("GET",url,true);
request.onreadystatechange=updatePage;
request.send(null);? //除了url不用發(fā)送別的東西?? ?
}
html中<head>塊中的任何JavaScript代碼會在頁面加載前執(zhí)行,只要browser發(fā)現(xiàn)JS代碼(獨立于函數(shù)之外靜態(tài)JS)就會被運行,JS的escape()函數(shù)可以將不合法的字符用其他方式替換掉如空格被轉(zhuǎn)為%20
回調(diào):一個事件發(fā)生時所觸發(fā)的那個函數(shù)
readystate: 0:尚未被初始化的連接 在open之前 1:open之后,則已經(jīng)初始化? 2. 處理中的響應(yīng)? 3:取得服務(wù)器響應(yīng),但無法使用 4:server的響應(yīng)就續(xù),可以通過reponseText屬性取得響應(yīng)數(shù)據(jù)。瀏覽器一直都知道請求處于何種狀態(tài),而JavaScript可以取得這些信息
瀏覽器的多此一舉:如果你對服務(wù)器端程序作出請求,IE會持續(xù)追蹤你所請求的URL,然后如果你又對相同的URL發(fā)出請求(且數(shù)據(jù)一樣)IE會認定你想得到相同的響應(yīng),所以IE不會發(fā)出此請求,而是把上次請求的響應(yīng)(在緩存中)拿出來重復(fù)使用,所以可以在url中加入虛擬的參數(shù)從而改變url例如:
url = url + "?dummy="+new Date().getTime();
當然不是所有的請求都要這樣處理,如通過電話確定地址,相同的電話得到相同的對應(yīng)的地址會更快些。
對于IE請求對象是ActiveXObject使用Msxml2.XMLHTTP或Microsoft.XMLHTTP而其他瀏覽器是XMLHttpRequest
request.state :請求的就緒狀態(tài)
request.status==200 :用來報告來自服務(wù)器的狀態(tài)碼
如果請求的url在server上找不到,瀏覽器一定還會運行回調(diào)函數(shù),這樣才能對server的響應(yīng)進行處置。
Ajax工具包: prototype, Dojo??? JS UI: script.ac.ulo.us,? Rico? Dom查看器(inspector)
轉(zhuǎn)載于:https://www.cnblogs.com/aquar/archive/2010/04/15/3451468.html
總結(jié)
以上是生活随笔為你收集整理的head rush ajax chapter1 Ajax的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Jsonp(JQ+C#)
- 下一篇: SEO优化之一步一步诊断网站