數(shù)據(jù)存儲(chǔ)是JavaScript的核心功能,這是一個(gè)在學(xué)習(xí)前期的一個(gè)容易讓人迷惑的問(wèn)題。它并不是那種像頁(yè)面滑動(dòng)、幻燈片展示、淡入淡出等吸引人眼球的特效。適當(dāng)?shù)拇娣藕脭?shù)據(jù),就有利于我們組織起結(jié)構(gòu),又能使應(yīng)用程序稍后訪問(wèn)這些內(nèi)容更加容易。JavaScript提供了各種不同的數(shù)據(jù)存儲(chǔ)方式,它是一個(gè)從基本到未來(lái)走向的演化模式:
XML代表可擴(kuò)展標(biāo)記語(yǔ)言,是一種比較靈活的數(shù)據(jù)格式,很多應(yīng)用程序存儲(chǔ)數(shù)據(jù)都喜歡用到它,結(jié)構(gòu)像HTML,也包含元素,標(biāo)簽以及屬性,模型都一樣。它的一大優(yōu)勢(shì)在于它是一種可擴(kuò)展的格式,你并不會(huì)受制于某種預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu);并且它還符合DOM標(biāo)準(zhǔn),使用AJAX調(diào)用獲取到的數(shù)據(jù)就像解析HTML一樣,通過(guò)相應(yīng)的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的一個(gè)嚴(yán)重的缺陷在于它不能用于跨域名的Aiax調(diào)用,也就是說(shuō)每一個(gè)Ajax調(diào)用的XML數(shù)據(jù)都必須和執(zhí)行調(diào)用的腳本處于同一域名內(nèi),否則請(qǐng)求會(huì)失敗。
HTML存儲(chǔ)也相似,它與Ajax結(jié)合起來(lái)最簡(jiǎn)單。采用這種方式的數(shù)據(jù)格式的重要因素是速度,HTML代碼段無(wú)需在客戶端解析就能直接將其輸出到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>
說(shuō)說(shuō)它的缺點(diǎn),它存儲(chǔ)的數(shù)據(jù)可能和HTML代碼混合在一起,所以說(shuō)可維護(hù)性降低。另外在編寫處理代碼時(shí),開(kāi)發(fā)者可能需要在服務(wù)器端做一些精細(xì)的控制手段。
以下是使用JavaScript進(jìn)行數(shù)據(jù)存儲(chǔ)的手段,循序漸進(jìn)…
變量
JavaScript最為基礎(chǔ)的數(shù)據(jù)存儲(chǔ)方式,它接受字符串、數(shù)值、布爾等。最核心的內(nèi)容是它的作用域問(wèn)題。
于變量相關(guān)的性能問(wèn)題:
變量在聲明完之后,就會(huì)被緩存到JavaScript文件中,于是在作用域內(nèi)就可以反復(fù)的使用它們了,獲取變量的開(kāi)銷微乎其微,只要數(shù)據(jù)的使用次數(shù)大于1,就應(yīng)該將其存入變量。
數(shù)組
數(shù)組跟普通數(shù)組、關(guān)聯(lián)數(shù)組和多維數(shù)組,它們都是元素列表,這種形式是各種數(shù)據(jù)存儲(chǔ)中非常靈活的一種。掌握了數(shù)組最基本的形式,也會(huì)對(duì)其他復(fù)雜形式的運(yùn)用大有脾益。數(shù)組元素的訪問(wèn)合一處是常見(jiàn)的基本交互代碼。鑒于數(shù)組這種數(shù)據(jù)存儲(chǔ)類型的重要性,JavaScript為數(shù)組交互操作提供了大量的專屬方法:
新聞熱點(diǎn)
疑難解答
圖片精選