Ajax說到底就是一種瀏覽器異步讀取服務器上XML內容的技術。XML只是符合很多規範的文本。而瀏覽器異步讀取的只是服務器上的文本內容,所以在Ajax開發時完全不必拘泥於XML。比如,我們還有JSON。
Ajax(Asynchronous JavaScript and XML)說到底就是一種瀏覽器異步讀取服務器上XML內容的技術。現在的技術凡是跟XML扯上關係,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外 的人看得很是熱鬧,門裏的人搖搖頭不外如是。XML呢,跨平臺的新潮語言?其實XML=TXT。XML只是符合很多規範的文本。它本身什麼都不是,只是保 存字符的文件。而瀏覽器異步讀取的只是服務器上的文本內容,所以在Ajax開發時完全不必拘泥於XML。[版權所有,www.jialing.net]
JSON的來歷
XML 的作用是格式化數據內容。如果我們不用XML還有什麼更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動態執行的天賦。即我們可以把想要執行的語句放在字符串裏,通過eval()這個動態執行函數來執行。字符串裏的內容會像我們寫的腳本 一樣被執行。
示例1:
<HTML> <HEAD> <TITLE>eval example 1</TITLE> </HEAD> <BODY> <script> str = "alert('hello')"; eval(str); </script> </BODY> </HTML> |
打開頁面會彈出hello窗口。
我們可以在字符串中放任何腳本語句,包括聲明語句:
<HTML> <HEAD> <TITLE>eval example 2</TITLE> </HEAD> <BODY> <script> define = "{name:'Michael',email:'[email protected]'}"; eval("data = "+define); alert("name:"+data.name); alert("email:"+data.email); </script> </BODY> </HTML> |
如果我們在後臺異步傳來的文本是JavaScript的聲明語句,那麼不是一條eval方法就能解析了?對於解析複雜的XML,這樣的效率是多麼大的提高啊!
Ajax(Asynchronous JavaScript and XML)說到底就是一種瀏覽器異步讀取服務器上XML內容的技術。現在的技術凡是跟XML扯上關係,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外 的人看得很是熱鬧,門裏的人搖搖頭不外如是。XML呢,跨平臺的新潮語言?其實XML=TXT。XML只是符合很多規範的文本。它本身什麼都不是,只是保 存字符的文件。而瀏覽器異步讀取的只是服務器上的文本內容,所以在Ajax開發時完全不必拘泥於XML。[版權所有,www.jialing.net]
JSON的來歷
XML 的作用是格式化數據內容。如果我們不用XML還有什麼更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動態執行的天賦。即我們可以把想要執行的語句放在字符串裏,通過eval()這個動態執行函數來執行。字符串裏的內容會像我們寫的腳本 一樣被執行。
示例1:
<HTML> <HEAD> <TITLE>eval example 1</TITLE> </HEAD> <BODY> <script> str = "alert('hello')"; eval(str); </script> </BODY> </HTML> |
打開頁面會彈出hello窗口。
我們可以在字符串中放任何腳本語句,包括聲明語句:
<HTML> <HEAD> <TITLE>eval example 2</TITLE> </HEAD> <BODY> <script> define = "{name:'Michael',email:'[email protected]'}"; eval("data = "+define); alert("name:"+data.name); alert("email:"+data.email); </script> </BODY> </HTML> |
如果我們在後臺異步傳來的文本是JavaScript的聲明語句,那麼不是一條eval方法就能解析了?對於解析複雜的XML,這樣的效率是多麼大的提高啊!
現在就來告訴你什麼是JSON:JavaScript Object Notation。我更願意把它翻譯爲JavaScript對象聲明。比如要從後臺載入一些通訊錄的信息,如果寫成XML,如下:
<contact> <friend> <name>Michael</name> <email>[email protected]</email> <homepage>http://www.jialing.net</homepage> </friend> <friend> <name>John</name> <email>[email protected]</email> <homepage>http://www.john.com</homepage> </friend> <friend> <name>Peggy</name> <email>[email protected]</email> <homepage>http://www.peggy.com</homepage> </friend> </contact> |
而寫成JSON呢:
[ { name:"Michael", email:"[email protected]", homepage:"http://www.jialing.net" }, { name:"John", email:"[email protected]", homepage:"http://www.jobn.com" }, { name:"Peggy", email:"[email protected]", homepage:"http://www.peggy.com" } ] |
簡單的不只是表達上,最重要的是可以丟棄讓人暈頭轉向的DOM解析了。因爲只要符合JavaScript的聲明規範,JavaScrip會自動幫你解析 好 的。Ajax中使用JSON的基本方法是前臺載入後臺聲明JavaScript對象的字符串,用eval方法來將它轉爲實際的對象,最後通過 DHTML更新頁面信息。
JSON的格式
JSON的基本格式如下,圖片來自json.org:
·對象是屬性、值對的集合。一個對象的開始於"{",結束於"}"。每一個屬性名和值間用":"提示,屬性間用","分隔。
·數組是有順序的值的集合。一個數組開始於"[",結束於"]",值之間用","分隔。
·值可以是引號裏的字符串、數字、true、false、null,也可以是對象或數組。這些結構都能嵌套。
·字符串的定義和C或Java基本一致。