Ajax第三天

XML

  • XML是一種標(biāo)記語(yǔ)言僵控,很類似HTML姜性,其宗旨是用來傳輸數(shù)據(jù),具有自我描述性(固定的格式的數(shù)據(jù))鸟廓。
  • HTML是來展現(xiàn)網(wǎng)頁(yè)的
  • XML是把數(shù)據(jù)給用戶來用(存儲(chǔ)數(shù)據(jù)的)
<?xml versio = "1.0" encoding = "UTF-8"?>
<html>
        <body>
                <div>學(xué)習(xí)xml</div>
                <name>itcast</name>
                <age>18</age>
        </body>
</body>

語(yǔ)法規(guī)則

  • 1大州、必須有一個(gè)根元素续语。
  • 2、可以自定義標(biāo)簽名厦画。
  • 3疮茄、不可有空格滥朱、不可以數(shù)字或 .開頭、大小寫敏感
  • 4力试、不可交叉嵌套
  • 5徙邻、屬性雙引號(hào)
  • 6、特殊符號(hào)要使用實(shí)體
  • 7畸裳、注釋和HTML一樣

雖然可以描述和傳輸復(fù)雜數(shù)據(jù)缰犁,但是其解析過于復(fù)雜并且體積較大,所以現(xiàn)在開發(fā)已經(jīng)很少使用了怖糊。

JSON

即javaScript Object Notation 另一種輕量級(jí)的文本數(shù)據(jù)交換格式帅容,獨(dú)立與語(yǔ)言。

  • 語(yǔ)法規(guī)則

    • 1伍伤、數(shù)據(jù)在名稱/值對(duì)中
    • 2并徘、數(shù)據(jù)由逗號(hào)分隔(最后一個(gè)健/值對(duì)不能帶逗號(hào))
    • 3、花括號(hào)保存對(duì)象方括號(hào)保存數(shù)組
    • 4扰魂、使用雙引號(hào)

JSON解析

  • JSON數(shù)據(jù)在不同語(yǔ)言進(jìn)行傳輸時(shí)麦乞,類型為字符串,不同的語(yǔ)言各自也都對(duì)應(yīng)有解析方法劝评,需要解析完成后才能讀取路幸。

  • 1、Javascript解析方法

eavl()付翁、JSON對(duì)象、JSON.parse()晃听、JSON.stringify();

  • 2百侧、PHP解析方法

json_encode()、json_decode()

var json = JOSN.stringify(obj)  //對(duì)象轉(zhuǎn)json
var object = JOSN.parse(josn) //json轉(zhuǎn)對(duì)象
  • eaval 可以將字符串解析成JS可以識(shí)別的語(yǔ)法
var str = 'sleret(1)';
eval('('+str+')');
結(jié)果 為 1
  • JSON一轉(zhuǎn)換變成Obj
var json = '{"mane":"itcast","age":10 }';
var obj = eval('('+ '{"mane":"itcast","age":10 }'+')');
console.log(obj);

cc:ie6+快捷鍵 把js兼容放在里面

  • 在PHP中解析JOSN
//數(shù)據(jù)是存在數(shù)據(jù)庫(kù)里能扒,從數(shù)據(jù)里取后往往是一個(gè)數(shù)組或?qū)ο?需要轉(zhuǎn)換成JOSN
$arr = array(
 'name'=>'itcast',
'age'=>10
) ;

echo json_encode($arr);//轉(zhuǎn)換成josn

$obj = json_decode($json);//轉(zhuǎn)換成對(duì)象

echo $obj->name;//訪問對(duì)象屬性


$result=file_get_content('stars.json');//獲取文件
echo $result;

Ajax工具函數(shù)封裝

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ajax工具函數(shù)</title>
</head>
<body>
    <script>
        // 定義一個(gè)命名空間
        var $ = {
            params: function (args) { // 專門處理我們的數(shù)據(jù)
                var o = '';
                for(var k in args) {
                    o += k + '=' + args[k] + '&';
                }

                o = o.slice(0, -1);

                return o;
                // console.log(o);
            },
            ajax: function (options) {
                // 初始化參數(shù)
                var type = options.type || 'get';
                var url = options.url || location.pathname;

                // get 方式 url?key=val&key1=val1
                // post 方式 xhr.send(key=val&key1=val1)
                var data = this.params(options.data || {});

                // var success = options.success || function () {console.log('回調(diào)函數(shù)不能為空')}

                var success = options.success;

                var xhr = new XMLHttpRequest;

                if(type == 'get') { // 當(dāng)請(qǐng)求方式為get佣渴,參數(shù)放到url上
                    url = url + '?' + data;
                    data = null;
                }

                // 設(shè)置請(qǐng)求方式
                xhr.open(type, url);

                if(type == 'post') { // 當(dāng)請(qǐng)求方式為post,需要設(shè)置Content-Type
                    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                }
                
                // 發(fā)送請(qǐng)求主體
                xhr.send(data);

                xhr.onreadystatechange = function () {
                    if(xhr.readyState == 4 && xhr.status == 200) {
                        // 調(diào)用回調(diào)函數(shù)并傳參
                        var result = JSON.parse(xhr.responseText);

                        success(result);
                    }
                }
            }
        }

        // 調(diào)用函數(shù)
        $.ajax({
            type: 'post',
            url: 'demo.php',
            data: {name: 'itcast', age: 10},
            success: function (data) {
                console.log(data);
            }
        });


        function fn(arg1) {
            // alert(arg1);

            // arg1();
        }

        // fn(1);

        // fn([1,2]);

        // fn({name: 'itcast'});

        var callback = function () {
            alert(1);
        }

        fn(callback);

        // for(var key in location) {
        //  console.log(key + '~~~~' + location[key]);
        // }
    </script>
</body>
</html>
  • PHP文件
<?php
    // 接收數(shù)據(jù) 
    //  以JSON方式返回
    echo json_encode($_GET);
?>

補(bǔ)充

get數(shù)據(jù) 傳在url 后面
Conten-type 是設(shè)置send里面的類型
有g(shù)et 就不要Content-type

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末初斑,一起剝皮案震驚了整個(gè)濱河市辛润,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌见秤,老刑警劉巖砂竖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鹃答,居然都是意外死亡乎澄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門测摔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來置济,“玉大人解恰,你說我怎么就攤上這事≌阌冢” “怎么了护盈?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羞酗。 經(jīng)常有香客問我腐宋,道長(zhǎng),這世上最難降的妖魔是什么整慎? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任脏款,我火速辦了婚禮,結(jié)果婚禮上裤园,老公的妹妹穿的比我還像新娘撤师。我一直安慰自己,他們只是感情好拧揽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布剃盾。 她就那樣靜靜地躺著,像睡著了一般淤袜。 火紅的嫁衣襯著肌膚如雪痒谴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天铡羡,我揣著相機(jī)與錄音积蔚,去河邊找鬼。 笑死烦周,一個(gè)胖子當(dāng)著我的面吹牛尽爆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播读慎,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼漱贱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了夭委?” 一聲冷哼從身側(cè)響起幅狮,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎株灸,沒想到半個(gè)月后崇摄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慌烧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年配猫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杏死。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泵肄,死狀恐怖捆交,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腐巢,我是刑警寧澤品追,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站冯丙,受9級(jí)特大地震影響肉瓦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胃惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一泞莉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧船殉,春花似錦鲫趁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至糠惫,卻和暖如春疫剃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硼讽。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工巢价, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人固阁。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓壤躲,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親您炉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • Ajax的基本概念及使用 同步&異步 同步:必須等待前面的任務(wù)完成役电,才能繼續(xù)后面的任務(wù)赚爵; 異步:不受當(dāng)前主要任務(wù)的...
    magic_pill閱讀 1,944評(píng)論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)法瑟,斷路器冀膝,智...
    卡卡羅2017閱讀 134,639評(píng)論 18 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件霎挟、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,067評(píng)論 4 62
  • 體脂率和肌肉是健身的朋友追求的疙描,低體脂率可以讓肌肉更加明顯诚隙,身材更加好看。尤其對(duì)健美運(yùn)動(dòng)員來說起胰,低于5%的體脂率久又,...
    九魚亭閱讀 876評(píng)論 0 0
  • 1861年的今天,歷史上第一張彩色照片在英格蘭皇家學(xué)院展出效五,拍攝者是物理學(xué)家麥克斯韋地消,他通過物理光學(xué)手段和加色法拍...
    第二輛閱讀 133評(píng)論 0 0