第三章 AJAX

一,ajax

1-1.ajax的概念:

? ? ? ? ajax是一種用于與后臺(tái)進(jìn)行異步數(shù)據(jù)交互的技術(shù),稱之為"異步的javascript and xml"

? ? ? ? 全稱:Asynchronous?javascript and xml,是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新網(wǎng)頁局部數(shù)據(jù)的技術(shù)。

1-2.ajax的優(yōu)勢(shì):

? ??????按需取數(shù)據(jù)。

? ? ????頁面無刷新。

? ? ????減少帶寬,降低成本

? ? ????請(qǐng)求速度快

? ? ????提升用戶體驗(yàn)。

1-3.ajax原理:

? ? 客戶端通過XMLHttpRequest向服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器響應(yīng)數(shù)據(jù),返回給XMLHttpRequest,在XMLHttpRequest對(duì)象的成功回調(diào)中通過DOM操作把數(shù)據(jù)展示在頁面

1-4.請(qǐng)求步驟:

a.創(chuàng)建一個(gè)XMLHttpRequest對(duì)象?? ?

????????var xhr = new?XMLHttpRequest();

????老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 對(duì)象:

? ??????variable=new ActiveXObject("Microsoft.XMLHTTP");

? ? 兼容寫法:

??? ?var xhr = null;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ??if(window.XMLHttpRequest){? ? ? ??

?? ??? ?????????xhr = new XMLHttpRequest();

? ???????}else{? ? ? ?

? ???????????????xhr = new ActiveXObject("Microsoft.XMLHTTP");? ? ??

?????????}

b,調(diào)用xhr的open方法

c,調(diào)用xhr的send方法

d,對(duì)請(qǐng)求狀態(tài)監(jiān)聽

1-5:ajax的readyState狀態(tài)

1-6: http響應(yīng)狀態(tài)碼說明:? ? ? ??

??????????1**:請(qǐng)求收到,繼續(xù)處理

??????????2**:操作成功收到,分析、接受

??????????3**:完成此請(qǐng)求必須進(jìn)一步處理

??????????4**:請(qǐng)求包含一個(gè)錯(cuò)誤語法或不能完成

??????????5**:服務(wù)器執(zhí)行一個(gè)完全有效請(qǐng)求失敗

??????????100——客戶必須繼續(xù)發(fā)出請(qǐng)求

??????????101——客戶要求服務(wù)器根據(jù)請(qǐng)求轉(zhuǎn)換HTTP協(xié)議版本

??????????200——交易成功

??????????201——提示知道新文件的URL

??????????202——接受和處理、但處理未完成

??????????203——返回信息不確定或不完整

??????????204——請(qǐng)求收到,但返回信息為空

??????????205——服務(wù)器完成了請(qǐng)求,用戶代理必須復(fù)位當(dāng)前已經(jīng)瀏覽過的文件

??????????206——服務(wù)器已經(jīng)完成了部分用戶的GET請(qǐng)求

??????????300——請(qǐng)求的資源可在多處得到

??????????301——?jiǎng)h除請(qǐng)求數(shù)據(jù)

??????????302——在其他地址發(fā)現(xiàn)了請(qǐng)求數(shù)據(jù)

??????????303——建議客戶訪問其他URL或訪問方式

??????????304——客戶端已經(jīng)執(zhí)行了GET,但文件未變化

??????????305——請(qǐng)求的資源必須從服務(wù)器指定的地址得到

??????????306——前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用

??????????307——申明請(qǐng)求的資源臨時(shí)性刪除

??????????400——錯(cuò)誤請(qǐng)求,如語法錯(cuò)誤

??????????401——請(qǐng)求授權(quán)失敗

??????????402——保留有效ChargeTo頭響應(yīng)

??????????403——請(qǐng)求不允許

??????????404——沒有發(fā)現(xiàn)文件、查詢或URl

??????????405——用戶在Request-Line字段定義的方法不允許

??????????406——根據(jù)用戶發(fā)送的Accept拖,請(qǐng)求資源不可訪問

??????????407——類似401,用戶必須首先在代理服務(wù)器上得到授權(quán)

??????????408——客戶端沒有在用戶指定的餓時(shí)間內(nèi)完成請(qǐng)求

??????????409——對(duì)當(dāng)前資源狀態(tài),請(qǐng)求不能完成

??????????410——服務(wù)器上不再有此資源且無進(jìn)一步的參考地址

??????????411——服務(wù)器拒絕用戶定義的Content-Length屬性請(qǐng)求

??????????412——一個(gè)或多個(gè)請(qǐng)求頭字段在當(dāng)前請(qǐng)求中錯(cuò)誤

??????????413——請(qǐng)求的資源大于服務(wù)器允許的大小

??????????414——請(qǐng)求的資源URL長(zhǎng)于服務(wù)器允許的長(zhǎng)度

??????????415——請(qǐng)求資源不支持請(qǐng)求項(xiàng)目格式

??????????416——請(qǐng)求中包含Range請(qǐng)求頭字段,在當(dāng)前請(qǐng)求資源范圍內(nèi)沒有range指示值,請(qǐng)求也不包含If-Range請(qǐng)求頭字段

??????????417——服務(wù)器不滿足請(qǐng)求Expect頭字段指定的期望值,如果是代理服務(wù)器,可能是下一級(jí)服務(wù)器不能滿足請(qǐng)求

??????????500——服務(wù)器產(chǎn)生內(nèi)部錯(cuò)誤

??????????501——服務(wù)器不支持請(qǐng)求的函數(shù)

??????????502——服務(wù)器暫時(shí)不可用,有時(shí)是為了防止發(fā)生系統(tǒng)過載

??????????503——服務(wù)器過載或暫停維修

??????????504——關(guān)口過載,服務(wù)器使用另一個(gè)關(guān)口或服務(wù)來響應(yīng)用戶,等待時(shí)間

二,編寫接口

<?php // 接口文件:index.php

? ? ? ? ?date_default_timezone_set('PRC');???//設(shè)置為中國(guó)時(shí)區(qū)

????? ? ?echo date("Y-m-d H-i-s",time());???//輸出當(dāng)前時(shí)間

?>

ajax請(qǐng)求,輸出接口響應(yīng)的的時(shí)間顯示在頁面

三.緩存處理:

? ? ? ? 以上代碼,在ie中輸出的一直是第一次請(qǐng)求的時(shí)間,刷新頁面無效,原因是:在默認(rèn)情況下,IE會(huì)針對(duì)請(qǐng)求地址緩存Ajax請(qǐng)求的結(jié)果。換句話說,在緩存過期之前,針對(duì)相同地址發(fā)起的多個(gè)Ajax請(qǐng)求,只有第一次會(huì)真正發(fā)送到服務(wù)端。在某些情況下,這種默認(rèn)的緩存機(jī)制并不是我們希望的

處理辦法:在url后跟隨一個(gè)隨機(jī)數(shù)或當(dāng)前時(shí)間毫秒數(shù),因?yàn)檫@個(gè)值的不同,瀏覽器會(huì)認(rèn)為這個(gè)請(qǐng)求是一個(gè)與上一次不同的請(qǐng)求。

四ie的編碼處理

? ? ? ? 在get請(qǐng)求中,ie返回的是瀏覽器編碼后的字符,因此需要對(duì)中文進(jìn)行URI轉(zhuǎn)碼處理,再發(fā)送請(qǐng)求

五.post請(qǐng)求

六.data參數(shù)序列化

七.get請(qǐng)求封裝

八.post請(qǐng)求封裝

九.完全封裝

十,用戶名唯一驗(yàn)證

十一,搜索下拉提示

十二,瀑布流(面向?qū)ο螅?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,639評(píng)論 1 32
  • 一、簡(jiǎn)歷準(zhǔn)備 1、個(gè)人技能 (1)自定義控件、UI設(shè)計(jì)、常用動(dòng)畫特效 自定義控件 ①為什么要自定義控件? Andr...
    lucas777閱讀 5,382評(píng)論 2 54
  • PNG 有PNG8和truecolor PNG PNG8類似GIF顏色上限為256,文件小,支持alpha透明度,...
    hudaren閱讀 1,834評(píng)論 0 0
  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,759評(píng)論 0 5
  • 尹總請(qǐng)客吃飯,尹總,裝飾公司老板,最賺錢的裝飾公司之一,之所以賺錢,是因?yàn)閳?chǎng)地小,但是單量多,一年300單以上的單...
    邱江濤QJT閱讀 4,220評(píng)論 10 8

友情鏈接更多精彩內(nèi)容