處理ajax數據;數據渲染


當我們用ajax把數據拿到前台,該如何渲染到頁面,有以下幾種方式:

一:使用字符串拼接的方法

聲明一個空變量,然后拼接

var  st="";
st+="<div>"
    st+="這是一段字符串"
st+="</div>"
document.body.innerHTML+=st;

二:DOM創建

在js中使用creatElement的方法,添加到外層元素

1 <script>
2     var div=document.creatElement("div");
3     document.body.appendChid(div)
4 </script>

三:underscore的模板(_.template)

模板三部曲

第一步:獲取模板的內容

第二步:將數據傳到模板里

第三步:添加的指定的位置

 1 <script src="underscore.js"></script>
 2 <script type=text/template id="temp">
 3     <div>
 4         <span>
 5              <% = data.text%>
 6         </span>
 7     </div>
 8 <script>    
 9 <script>
10     var  txt={"text":"hello"}
11     var temp=document.getelementById("temp").innerHTML;
12     var html=_.template(temp)
13     var exam=html({data:text})
14     document.dody.innerHTMl=exam;
15 </script>                        

四:文檔碎片

這兩種方式將字符串拼接和DOM創建的優缺點結合,原先元素的事件也存在,還減少了DOM回流  

字符串拼接的方法會將元素身上添加的事件都清除,因為字符串拼接會使DOM元素變成字符串,而字符串沒有事件, 但是這種方式的優點是DOM回流相對DOM創建較少,

而DOM創建是每創建一次DOM元素就會DOM回流,嚴重影響了瀏覽器的性能,但是元素不會受影響,添加的事件也還存在

 

1 var farg=document.creatDocumentFragment();
2 var  div=document.creatElement("div")
3 div.innerHTML="這是一串字符串"
4 frag.appendChild(div)
5 document.appendChild(frag)

PS:

事件委托:當某些元素的子集綁定了大量的相同的事件的時候,我們可以使用事件委托的方法,將事件都綁定到父級身上,找到事件源,綁定方法;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM