HTML javascript
是用來描述網頁的一種語言java
HTML 指的是超文本標記語言 (Hyper Text Markup Language)git
HTML 不是一種編程語言,而是一種標記語言 (markup language)github
HTML 被設計用來顯示數據編程
HTML5canvas
是下一代的 HTML數組
增長了用於繪畫的 canvas 元素服務器
用於媒介回放的 video 和 audio 元素等等網絡
XML 數據結構
XML 是一種標記語言,很相似 HTML
XML 的設計宗旨是傳輸和存儲數據,而非顯示數據
JSON
做爲一種輕量級的數據交換格式,正在逐步取代XML,成爲網絡數據的通用格式
基於JavaScript的一個子集
易讀性略差,編碼手寫難度大,數據量小
JSON格式取代了XML給網絡傳輸帶來了很大的便利,可是卻沒有了XML的一目瞭然,尤爲是JSON數據很長的時候,咱們會陷入繁瑣複雜的數據節點查找中
XML
可擴展標記語言
用於標記電子文件使其具備結構性的標記語言,能夠用來標記數據、定義數據類型,是一種容許用戶對本身的標記語言進行定義的源語言
易讀性高,編碼手寫難度小,數據量大
對象: {} 括起來的內容
數據結構爲 {key:value,key:value,...}的鍵值對的結構
能夠反序列化爲OC中的NSDictionary
數組: []括起來的內容
數據結構爲 ["java","javascript","vb",...]
能夠反序列化爲OC中的NSArray
序列化:在傳輸以前,將對象轉換成有序的字符串或者二進制數據流
反序列化:將接收到的字符串或者二進制數據流轉換成對象或者數組,以便程序訪問
做爲一種輕量級的數據交換格式,JSON正在逐步取代XML,成爲網絡數據的通用格式
從iOS 5開始,使用NSJSONSerialization對JSON解析
其餘常見的三種JSON解析第三方庫:
SBJson
JSONKit
TouchJson
從性能上來講,NSJSONSerialization最好,JSONKit次之,SBJson使用較爲普遍,API簡單易用
JSON是輕量級的數據交換格式,正逐步取代XML,成爲通用網絡數據格式
使用類方法JSONObjectWithData:options:error:能夠將接收到的JSON數據反序列化爲NSArray或NSDictionary等對象
技巧:
將加載內容反序列化爲JSON後,能夠先保存至plist文件,以便後續操做
因爲是網絡應用,不要使用UIImage的同步加載方法設置ImageView的內容,不然容易形成應用阻塞,影響用戶體驗
加載網絡圖片使用的第三方框架SDWebImage,官網地址: https://github.com/rs/SDWebImage
NSXMLParser是SAX方法解析
SAX(Simple API for XML)
只能讀,不能修改,只能順序訪問,適合解析大型XML,解析速度快
常應用於處理大量數據的XML,實現異構系統的數據訪問,實現跨平臺
從文檔的開始經過每一節點移動,定位一個特定的節點
DOM(Document Object Model)
不只能讀,還能修改,並且可以實現隨機訪問,缺點是解析速度慢,適合解析小型文檔
通常應用與小型的配置XML,方便操做
爲載入到內存的文檔節點創建類型描述,呈現可橫向移動、潛在巨大的樹型結構
在內存中生成節點樹操做代價昂貴
1. 建立NSXMLParser實例,並傳入從服務器接收的XML數據
2. 定義解析器代理
3. 解析器解析
4. 經過解析代理方法完成XML數據的解析
// 1. 開始解析XML文檔
- (void)parserDidStartDocument:
// 2. 開始解析某個元素,會遍歷整個XML,識別元素節點名稱
- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:
// 3. 文本節點,獲得文本節點裏存儲的信息數據,對於大數據可能會接收屢次!爲了節約內存開銷
- (void)parser:foundCharacters:
// 4. 結束某個節點,存儲從parser:foundCharacters:方法中獲取到的信息
- (void)parser:didEndElement:namespaceURI:qualifiedName:
注意:在解析過程當中,2、3、4三個方法會不停的重複執行,直到遍歷完成爲止
// 5. 解析XML文檔結束
- (void)parserDidEndDocument:
// 6. 解析出錯
- (void)parser:parseErrorOccurred: