1.渲染數據
(1) 案例分析 原有的list中有三個li,並且每個li身上有onmouseover事件
1.字符串拼接,最常用的方法
優點:只進行了一次Dom回流
缺點:原有dom的事件都會丟失
原因:就在與innerHTML這個屬性,這個屬性是返回或設置Dom中的內容,以字符串形式返回,拼接完之后是string類型,而onmouse這些屬性是Dom元素對象身上的,所以這些onmouse系列的屬性就丟失了。
2.dom循環
優點:原有的dom身上的事件不會丟失,不會影響其他dom
缺點:dom回流次數過多,嚴重影響網頁性能。
3.模板模板的本質就是字符串
4. 文檔碎片
優點:既不影響原有dom的屬性,也只回流一次。
dom回流
每當對dom元素進行增刪查改的時候,瀏覽器就會重新加載一個,把新的結果渲染出來。
無論上面的四種方法,新增的li沒有onmouseover事件,如果保證新增的li也擁有添加的事件。用dom遍歷添加事件時不行的,用事件委托。
事件委托
利用的原理就是事件冒泡機制,但是並不是所有的事件都有冒泡機制,比如mouseenter。。mouseleave
xml
常見的數據存儲格式有兩種,一種是json99.99% 另一種是xml。
1.要有xml申明
2.要有一個根節點
3.xml必須是雙標簽
4.對大小寫敏感
5.xml標簽的屬性值一定要加引號
xml中的內容不要使用特殊怒符號< > & 等
文檔中的空格會被保留
ajax獲取數據,
json格式 需要解析 string==》 json類型"{'name':'zhang'}"==>{'name':'zhang'}
用JSON.parse(),反過來{‘name’:'zhang'}==>"{'name':'zhang'}"
用JSON.stringify()
注意事項:json 里面用雙引號 外面只能用單引號