資料存放區是JavaScript的核心功能,這是一個在學習前期的一個容易讓人迷惑的問題。它並不是那種像頁面滑動、投影片展示、淡入淡出等吸引人眼球的特效。適當的存放好資料,就有利於我們組織起結構,又能使應用程式稍後訪問這些內容更加容易。JavaScript提供了各種不同的資料存放區方式,它是一個從基本到未來走向的演化模式:
XML代表可延伸標記語言 (XML),是一種比較靈活的資料格式,很多應用程式儲存資料都喜歡用到它,結構像HTML,也包含元素,標籤以及屬性,模型都一樣。它的一大優勢在於它是一種可擴充的格式,你並不會受制於某種預設的資料結構;並且它還符合DOM標準,使用AJAX調用擷取到的資料就像解析HTML一樣,通過相應的DOM方法和屬性解析它:
<ingredient><prison><name>apple</name><color>red</color></prison><prison><name>tomato</name><color>red</color></prison><prison><name>peach</name><color>pink</color></prison><prison><name>pitaya</name><color>green</color></prison></ingredient>
但是XML的一個嚴重的缺陷在於它不能用於跨網域名稱的Aiax調用,也就是說每一個Ajax調用的XML資料都必須和執行調用的指令碼處於同一網域名稱內,否則請求會失敗。
HTML儲存也相似,它與Ajax結合起來最簡單。採用這種方式的資料格式的重要因素是速度,HTML程式碼片段無需在用戶端解析就能直接將其輸出到DOM之中,所以我們不需要再額外的編寫JavaScript代碼解析HTML。
<ul><li><a href="boke.js">apple:red</a></li><li>tomato:red</li><li>peach:pink</li><li>piyata:green</li></ul>
說說它的缺點,它儲存的資料可能和HTML代碼混合在一起,所以說可維護性降低。另外在編寫處理代碼時,開發人員可能需要在伺服器端做一些精細的控制手段。
以下是使用JavaScript進行資料存放區的手段,循序漸進…
變數
JavaScript最為基礎的資料存放區方式,它接受字串、數值、布爾等。最核心的內容是它的範圍問題。
於變數相關的效能問題:
變數在聲明完之後,就會被緩衝到JavaScript檔案中,於是在範圍內就可以反覆的使用它們了,擷取變數的開銷微乎其微,只要資料的使用次數大於1,就應該將其存入變數。
數組
數組跟普通數組、關聯陣列和多維陣列,它們都是元素列表,這種形式是各種資料存放區中非常靈活的一種。掌握了數組最基本的形式,也會對其他複雜形式的運用大有脾益。數組元素的訪問合一處是常見的基本互動代碼。鑒於數組這種資料存放區類型的重要性,JavaScript為數組互動操作提供了大量的專屬方法:
.join() 方法 可以指定某個字元可作為數組內每個元素的串連符;slice() 方法可以輸出數組中某個範圍內的元素;shift()和unshift() 方法 分別用於在數組頭部移除或新增元素;pop() 方法 用於移除並返回數組中的最後一個元素;concat() 方法 用於將多個數組拼接成一個數組,按參數的先後而定;sort()方法 可以按照字母表順序或自訂順序來排列數組的元素,但是只會根據首字元排序,一般都是錯誤的。
對象
在資料變得更加複雜、更加難以管理的情況下,我就會選擇將數群組轉換為對象。因為對象的儲存方式更加易讀。
//對象資料存放區var meatball = {bread:"wang",meat :"li",cheese : "zhang"};//返回對象的bread alert(meatball.bread);
對象對效率的影響
上面的代碼只有一層,然而它是可以無限嵌套的。對象能更好的組織代碼,提高模組化的程度。不過與此同時,還是需要考慮效能和可維護性的權衡問題,因為它需要尋找這三者中的一個。如果是運用物件導向編程技術,嵌套達到3層及以上,就會引發效能問題;但是在伺服器端運用時就不是這樣了,所以前端開發人員要決定什麼時候使用物件導向編程技術。
JSON
JSON是一種易於同jacascript 整合的資料格式,它通常是在用JavaScript調用外部伺服器時使用的。JSON資料存放於獨立的檔案中,而且通常位於另一台完全不同的伺服器上。它現在是最常見的一種調用API服務時所使用的資料格式,人們之所以選中它,是因為此格式非常易於閱讀。起初,JSON格式是作為一種XML格式的替代方案而出現的,但很快它就在資料交換領域佔據了主流的地位。它是一種輕量級的資料格式,易於通過遠程Ajax調用進行跨網域名稱訪問。儘管JavaScript對JSON格式的解析提供了原生的支援,但它還是一種獨立於平台的格式,用戶端與伺服器端在資料交換時都可以使用。
由於JSON格式具備跨網域名稱訪問的能力,所以為了防止一切惡意行為,我們務必只使用從可信的資料來源中擷取JSON。
這是一個 Salad.json 資料檔案:
//ajax JSON Saladvar ingredient = {"fruit":[{"name" : "apple","color" : "green"},{"name" : "tomato","color" : "red"},{"name" : "peach","color" : "pink"},{"name" : "pitaya","color" : "white"},{"name" : "lettuce","color" : "green"}]};
JSON最常見的用途就是配合API調用,在於API為基礎的網路程式開發環境中,使用何種後端語言進行開發,資料格式都無需改變。
以上所述是小編給大家介紹的Ajax與使用者互動的JSON資料存放區格式,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!