小編給大家分享一下jQuery與JS實(shí)現(xiàn)AJAX,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)船山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
AJAX準(zhǔn)備知識(shí):JSON
什么是 JSON ?
JSON 指的是 JavaScript 對(duì)象表示法(JavaScript Object Notation)
JSON 是輕量級(jí)的文本數(shù)據(jù)交換格式
JSON 獨(dú)立于語(yǔ)言 *
JSON 具有自我描述性,更易理解
* JSON 使用 JavaScript 語(yǔ)法來(lái)描述數(shù)據(jù)對(duì)象,但是 JSON 仍然獨(dú)立于語(yǔ)言和平臺(tái)。JSON 解析器和 JSON 庫(kù)支持許多不同的編程語(yǔ)言。
合格的json對(duì)象:
["one","two","three"]{"one":1,"two":2,"three":3}{"names":["張三","李四"]}[{"name":"張三"},{"name":"李四"}]
不合格的json對(duì)象:
{name:"張三",'age':32}//屬性名必須使用雙引號(hào)[32,64,128,0xFFF]//不能使用十六進(jìn)制值{"name":"張三","age":undefined}//不能使用undefined{"name":"張三","birthday":newDate('Fri,26Aug201107:13:10GMT'),"getName":function(){returnthis.name;}//不能使用函數(shù)和日期對(duì)象}
stringify與parse方法
JavaScript中關(guān)于JSON對(duì)象和字符串轉(zhuǎn)換的兩個(gè)方法:
JSON.parse(): 用于將一個(gè) JSON 字符串轉(zhuǎn)換為 JavaScript 對(duì)象
JSON.parse('{"name":"Q1mi"}'); JSON.parse('{name:"Q1mi"}') ; // 錯(cuò)誤 JSON.parse('[18,undefined]') ; // 錯(cuò)誤
JSON.stringify(): 用于將 JavaScript 值轉(zhuǎn)換為 JSON 字符串。
JSON.stringify({"name":"Q1mi"})
和XML的比較
JSON 格式于2001年由 Douglas Crockford 提出,目的就是取代繁瑣笨重的 XML 格式。
JSON 格式有兩個(gè)顯著的優(yōu)點(diǎn):書寫簡(jiǎn)單,一目了然;符合 JavaScript 原生語(yǔ)法,可以由解釋引擎直接處理,不用另外添加解析代碼。所以,JSON迅速被接受,已經(jīng)成為各大網(wǎng)站交換數(shù)據(jù)的標(biāo)準(zhǔn)格式,并被寫入ECMAScript 5,成為標(biāo)準(zhǔn)的一部分。
XML和JSON都使用結(jié)構(gòu)化方法來(lái)標(biāo)記數(shù)據(jù),下面來(lái)做一個(gè)簡(jiǎn)單的比較。
用XML表示中國(guó)部分省市數(shù)據(jù)如下:
XML格式數(shù)據(jù) 中國(guó) 黑龍江 哈爾濱 大慶 廣東 廣州 深圳 珠海 臺(tái)灣 臺(tái)北 高雄 新疆 烏魯木齊
XML格式數(shù)據(jù)
用JSON表示如下:
{"name":"中國(guó)","province":[{"name":"黑龍江","cities":{"city":["哈爾濱","大慶"]}},{"name":"廣東","cities":{"city":["廣州","深圳","珠海"]}},{"name":"臺(tái)灣","cities":{"city":["臺(tái)北","高雄"]}},{"name":"新疆","cities":{"city":["烏魯木齊"]}}]}JSON格式數(shù)據(jù)
JSON格式數(shù)據(jù)
由上面的兩端代碼可以看出,JSON 簡(jiǎn)單的語(yǔ)法格式和清晰的層次結(jié)構(gòu)明顯要比 XML 容易閱讀,并且在數(shù)據(jù)交換方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得節(jié)約傳輸數(shù)據(jù)所占用得帶寬。
AJAX簡(jiǎn)介
AJAX(Asynchronous Javascript And XML)翻譯成中文就是“異步的Javascript和XML”。即使用Javascript語(yǔ)言與服務(wù)器進(jìn)行異步交互,傳輸?shù)臄?shù)據(jù)為XML(當(dāng)然,傳輸?shù)臄?shù)據(jù)不只是XML)。
AJAX 不是新的編程語(yǔ)言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。
AJAX 最大的優(yōu)點(diǎn)是在不重新加載整個(gè)頁(yè)面的情況下,可以與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)內(nèi)容。(這一特點(diǎn)給用戶的感受是在不知不覺(jué)中完成請(qǐng)求和響應(yīng)過(guò)程)
AJAX 不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。
同步交互:客戶端發(fā)出一個(gè)請(qǐng)求后,需要等待服務(wù)器響應(yīng)結(jié)束后,才能發(fā)出第二個(gè)請(qǐng)求;
異步交互:客戶端發(fā)出一個(gè)請(qǐng)求后,無(wú)需等待服務(wù)器響應(yīng)結(jié)束,就可以發(fā)出第二個(gè)請(qǐng)求。
示例
頁(yè)面輸入兩個(gè)整數(shù),通過(guò)AJAX傳輸?shù)胶蠖擞?jì)算出結(jié)果并返回。
AJAX局部刷新實(shí)例 + =