Textarea與懶惰渲染實現(xiàn)代碼
更新時間:2012年01月04日 17:24:14 作者:
2008年有啊第一次性能優(yōu)化時,我們曾用textarea來存貯需要懶惰渲染的節(jié)點
代碼如下。
<div>
立即渲染內(nèi)容
<ul>
<li>張三<img src="p01.jpg"/></li>
<li>張四<img src="p02.jpg"/></li>
</ul>
</div>
<div>
<textarea id="lazyRender01" style="display:none">
懶惰渲染內(nèi)容
<ul>
<li>李三<img src="p11.jpg"/></li>
<li>李四<img src="p12.jpg"/></li>
</ul>
</textarea>
</div>
<script>
setTimeout(function(){//懶惰渲染
var el =document.getElementById('lazyRender01');
el.parentNode.innerHTML = el.value;
},1000);
</script>
代碼的好處是:讓李三李四對應的內(nèi)容,在懶惰渲染之前,不形成dom節(jié)點,不請求圖片。
但有的同學會問:“Textarea里的內(nèi)容,對搜索引擎不友好。”
沒問題,這個也很好解決的:
<div>
立即渲染內(nèi)容
<ul>
<li>張三<img src="p01.jpg"/></li>
<li>張四<img src="p02.jpg"/></li>
</ul>
</div>
<div>
<script>document.write('<textarea id="lazyRender01" style="display:none">');</script>
懶惰渲染內(nèi)容
<ul>
<li>李三<img src="p11.jpg"/></li>
<li>李四<img src="p12.jpg"/></li>
</ul>
</textarea>
</div>
<script>
setTimeout(function(){//懶惰渲染
var el =document.getElementById('lazyRender01');
el.parentNode.innerHTML = el.value;
},1000);
</script>
代碼的區(qū)別很簡單,只是把'<textarea id="lazyRender01">'這一段通過js的document.write輸出來。
但結果卻有了很大的不同:就算瀏覽器不支持js,一切內(nèi)容也還是能原樣顯示出來。
復制代碼 代碼如下:
<div>
立即渲染內(nèi)容
<ul>
<li>張三<img src="p01.jpg"/></li>
<li>張四<img src="p02.jpg"/></li>
</ul>
</div>
<div>
<textarea id="lazyRender01" style="display:none">
懶惰渲染內(nèi)容
<ul>
<li>李三<img src="p11.jpg"/></li>
<li>李四<img src="p12.jpg"/></li>
</ul>
</textarea>
</div>
<script>
setTimeout(function(){//懶惰渲染
var el =document.getElementById('lazyRender01');
el.parentNode.innerHTML = el.value;
},1000);
</script>
代碼的好處是:讓李三李四對應的內(nèi)容,在懶惰渲染之前,不形成dom節(jié)點,不請求圖片。
但有的同學會問:“Textarea里的內(nèi)容,對搜索引擎不友好。”
沒問題,這個也很好解決的:
復制代碼 代碼如下:
<div>
立即渲染內(nèi)容
<ul>
<li>張三<img src="p01.jpg"/></li>
<li>張四<img src="p02.jpg"/></li>
</ul>
</div>
<div>
<script>document.write('<textarea id="lazyRender01" style="display:none">');</script>
懶惰渲染內(nèi)容
<ul>
<li>李三<img src="p11.jpg"/></li>
<li>李四<img src="p12.jpg"/></li>
</ul>
</textarea>
</div>
<script>
setTimeout(function(){//懶惰渲染
var el =document.getElementById('lazyRender01');
el.parentNode.innerHTML = el.value;
},1000);
</script>
代碼的區(qū)別很簡單,只是把'<textarea id="lazyRender01">'這一段通過js的document.write輸出來。
但結果卻有了很大的不同:就算瀏覽器不支持js,一切內(nèi)容也還是能原樣顯示出來。
相關文章
javascript的動態(tài)加載、緩存、更新以及復用(一)
在做OA、MIS、ERP等信息管理類的項目,經(jīng)常會遇到引用很多js文件,這就需要用到動態(tài)加載、緩存、更新以及復用等技術,下面我們來討論下2014-06-06小程序websocket心跳庫(websocket-heartbeat-miniprogram)
這篇文章主要介紹了小程序websocket心跳庫(websocket-heartbeat-miniprogram),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02input輸入框限制只能輸入數(shù)字的方法實例(個人認為最好的)
在很多業(yè)務中需要對輸入框進行字符限制,比如金額輸入框、手機號碼輸入框等,下面這篇文章主要給大家介紹了關于input輸入框限制只能輸入數(shù)字的相關資料,文中介紹的方法個人認為最好的,需要的朋友可以參考下2022-10-10