久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發帖
查看: 5883|回復: 0

基于 JS artTemplate 模板引擎 Template 加載的優化

83

主題

-6

回帖

329

積分

爐火純青

貢獻
2 點
金幣
241 個
樓主
發表于 2019-6-1 19:58:21 | 只看樓主 |倒序瀏覽 |閱讀模式
artTemplate (http://aui.github.io/artTemplate)一種全新的 javascript 模板引擎,它采用了預編譯的方式讓性能有了質的飛躍,并充分利用 javascript 引擎特性,使得其性能無論在前端還是后端都有極其出色的表現。但是在實際應用中我們發現,和Ajax配合后通常會產生很多的 Template,這些 Template 都堆積在頁面源碼中時間一長難免會越來越多,影響頁面加載的字節數,讓頁面越來越大。
我們對此進行了優化,由于我們的業務主要是針對移動產品的,因此我們可以放心的使用 HTML5 的 localStorage 進行緩存操作,緩存部分代碼如下:
  1. artTemplate (http://aui.github.io/artTemplate)一種全新的 javascript 模板引擎,它采用了預編譯的方式讓性能有了質的飛躍,并充分利用 javascript 引擎特性,使得其性能無論在前端還是后端都有極其出色的表現。但是在實際應用中我們發現,和Ajax配合后通常會產生很多的 Template,這些 Template 都堆積在頁面源碼中時間一長難免會越來越多,影響頁面加載的字節數,讓頁面越來越大。
  2. 我們對此進行了優化,由于我們的業務主要是針對移動產品的,因此我們可以放心的使用 HTML5 的 localStorage 進行緩存操作,緩存部分代碼如下:
復制代碼
這時,我們可以把諸多的 Template 分門別類的存放在不同的文件中,比如把首頁的 Template 代碼存放在 tpl_index.html 中,列表頁的 Template 代碼存放在 tpl_list.html 中。每個文件中可以放多個 Template 定義,文件內容如下:
  1. <script id="header" type="text/html">
  2. <div class="header"><h3><%= header.name %></h3></div>
  3. </script>

  4. <script id="hotList" type="text/html">
  5. <ul>
  6.     <% for(i = 0; i < list.length; i++){ %>
  7.         <li tid="<%= list[i].tid %>"><%= list[i].subject %></li>
  8.     <% } %>
  9. </ul>
  10. </script>

  11. ······
復制代碼
在我們使用的時候,直接引用文件即可,如下:
  1. TC.load("tmpl/tpl_list.html");
復制代碼
首次訪問此函數時,會調用 tmpl/tpl_list.html 文件并緩存到 localStorage 中,以后會直接從 localStorage 中獲取 Template 的內容,直到 TC.VERSION 中的值變化,才會重新調用文件。從而減少了主頁面請求的字節數。
用過 artTemplate 的人會習慣直接把一些內容很短的模板直接寫在 JS 里,類似下面
  1. template.compile('header', '<div class="header"><h3><%= header.name %></h3></div>');
復制代碼
當然這樣更省事。
此方案的是保證減少頁面請求字節及頁面請求數的目的下還能做到方便維護而提供的!

此功能在打通版微社區中實現!



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-3 10:02 , Processed in 0.041384 second(s), 10 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表