Ajax開發(fā)筆記

一障斋、 同步與異步

瀏覽網(wǎng)頁的時候兩種情況:
1、白屏 (同步)
2泪掀、頁面不刷新 (異步) 局部更新頁面不會全屏刷新
實現(xiàn)異步局部更新(不使用XMLHttpRequest)
Iframe

Iframe

表單提交后的相應頁面返回到iframe當中听绳,主頁面內(nèi)容不變

二、 原生ajax實現(xiàn)異步通信

var btn = document.getElementById('btn');
        btn.onclick  = function(){
            var username = document.getElementById('username').value;
            var password = document.getElementById('password').value;
            //第一步:創(chuàng)建對象
            //秘書出場
            var xhr = null;
            if(window.XMLHttpRequest){
                xhr = new XMLHttpRequest();
            }else{
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //初始化
            //準備好了
            var url = './check.php?username='+username+"&password="+password;
            xhr.open('get',url,true);//true代表異步异赫,false代表同步椅挣。

            //這段代碼在xhr.send();執(zhí)行完之后才能執(zhí)行
            //這件事做完了怎么辦
            //事情辦完之后干什么
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4){
                    if(xhr.status == 200){
                        var data = xhr.responseText;
                        if(data == 1){
                            document.getElementById('showInfo').innerHTML = '用戶名或者密碼錯誤';
                        }else if(data == 2){
                            document.getElementById('showInfo').innerHTML = '登錄成功';
                        }
                    }
                };
            }
            //實際的去做這件事
            //去做這件事情
            xhr.send(null);
        }

check.php文件如下:

$username = $_GET['username'];
$password = $_GET['password'];

if($username == 'admin' && $password == '123'){
    echo 2;
}else{
    echo 1;
}
?>```

xhr.readyState
0:XMLHttpRequest對象創(chuàng)建完成
1:表示發(fā)送請求的動作準備好了,但是還沒有開始發(fā)送
2:表示已經(jīng)發(fā)送完成
3:服務器已經(jīng)返回了數(shù)據(jù)
4:服務器返回的數(shù)據(jù)已經(jīng)可以使用

xhr.status == 200 表示請求成功塔拳;
404表示沒有找到這個頁面或者數(shù)據(jù)
503表示服務器端發(fā)生錯誤

回調(diào)函數(shù)接到的數(shù)據(jù)類型
responseText
json  html  script
responseXML


json  javascript object notation
相對于xml的優(yōu)點:數(shù)據(jù)量相對較小鼠证,解析比較方便。

###三蝙斜、jQuery的ajax語法


![jQuery的ajax語法](http://upload-images.jianshu.io/upload_images/2572649-1b3323991ff5d7df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#####dataType為String類型

預期服務器返回的數(shù)據(jù)類型名惩。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷孕荠,比如XML 
MIME類型就被識別為XML娩鹉。在1.4中,JSON就會生成一個JavaScript對象稚伍,而script則會執(zhí)行這個腳本弯予。隨后服務器端返回的數(shù)據(jù)會根據(jù)這個值解析后,傳遞給回調(diào)函數(shù)个曙⌒饽郏可用值: 
"xml": 返回 XML 文檔,可用 jQuery 處理垦搬。
"html": 返回純文本 HTML 信息呼寸;包含的script標簽會在插入dom時執(zhí)行。
"script": 返回純文本 JavaScript 代碼猴贰。不會自動緩存結(jié)果对雪。除非設(shè)置了"cache"參數(shù)。'''注意:'''在遠程請求時(不在同一個域下)米绕,所有POST請求都將轉(zhuǎn)為GET請求瑟捣。(因為將使用DOM的script標簽來加載)
"json": 返回 JSON 數(shù)據(jù) 馋艺。
"jsonp": JSONP格式。使用 JSONP形式調(diào)用函數(shù)時迈套,如 "myurl?callback=?" jQuery 將自動替換 callback=后面的? 為正確的函數(shù)名捐祠,以執(zhí)行回調(diào)函數(shù)。
"text": 返回純文本字符串

#####date為Object/String類型

發(fā)送到服務器的數(shù)據(jù)桑李。將自動轉(zhuǎn)換為請求字符串格式踱蛀。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉(zhuǎn)換芙扎。必須為 Key/Value 格式星岗。如果為數(shù)組填大,jQuery 將自動為不同值對應同一個名稱戒洼。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 "&foo=bar1&foo=bar2"。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末允华,一起剝皮案震驚了整個濱河市圈浇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌靴寂,老刑警劉巖磷蜀,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異百炬,居然都是意外死亡褐隆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門剖踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庶弃,“玉大人,你說我怎么就攤上這事德澈⌒ィ” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵梆造,是天一觀的道長缴守。 經(jīng)常有香客問我,道長镇辉,這世上最難降的妖魔是什么屡穗? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮忽肛,結(jié)果婚禮上村砂,老公的妹妹穿的比我還像新娘。我一直安慰自己麻裁,他們只是感情好箍镜,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布源祈。 她就那樣靜靜地躺著,像睡著了一般色迂。 火紅的嫁衣襯著肌膚如雪香缺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天歇僧,我揣著相機與錄音图张,去河邊找鬼。 笑死诈悍,一個胖子當著我的面吹牛祸轮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播侥钳,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼适袜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舷夺?” 一聲冷哼從身側(cè)響起苦酱,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎给猾,沒想到半個月后疫萤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡敢伸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年扯饶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片池颈。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡尾序,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饶辙,到底是詐尸還是另有隱情蹲诀,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布弃揽,位于F島的核電站脯爪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏矿微。R本人自食惡果不足惜痕慢,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涌矢。 院中可真熱鬧掖举,春花似錦、人聲如沸娜庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至励负,卻和暖如春藕溅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背继榆。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工巾表, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人略吨。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓集币,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翠忠。 傳聞我的和親對象是個殘疾皇子鞠苟,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第一章 入門 基本功能:訪問和操作 dom 元素,控制頁面樣式负间,對頁面的事件處理偶妖,與ajax完美結(jié)合,有豐富的插件...
    X_Arts閱讀 1,045評論 0 2
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,196評論 0 7
  • Php代碼 收藏代碼 ajax通過 HTTP 請求加載遠程數(shù)據(jù)政溃。jQuery 底層 AJAX 實現(xiàn)。簡單易用的高...
    Yumazhiyao閱讀 928評論 0 4
  • Ajax的基本概念及使用 同步&異步 同步:必須等待前面的任務完成态秧,才能繼續(xù)后面的任務董虱; 異步:不受當前主要任務的...
    magic_pill閱讀 1,948評論 0 5
  • jQuery ajax - ajax() 方法 http://www.w3school.com.cn/jquery...
    光劍書架上的書閱讀 1,161評論 0 15