当前位置导航:炫浪网>>网络学院>>网页制作>>JavaScript教程

JavaScript JST模板引擎

  Trimpath JavaScript 是个轻量级的,基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎。新浪的评论系统使用的就是此模板。

  它有如下的特点:

  1、采用标准的JavaScript编写,支持跨浏览器

  2、模板语法类似于:FreeMarker,Velocity,Smarty

  3、采用简易的语言来描述大段的字串以及Dom/DHTML操作

  4、可以很方便的解析XML文件格式的数据到指定模板。

  采 用该引擎,可以让它来完全处理View方面的事情,服务端Module直接输出Data就可以。让你的MVC模式连成一体,而且由于View由浏览器来处 理,大大减少了服务器的负担,用来构建Ajax技术的网络信息系统应用是一个非常好的选择。下面将通过翻译该站的文章来给大家介绍这个JST引擎的使用。

  CODE:

  

  1. <html>   
  2. <head>   
  3. <script language="javascript" src="trimpath/template.js"></script>   
  4. </head>   
  5. <body>   
  6. <div id="outputDiv">   
  7. </div>   
  8. <script language="javascript">   
  9. var data = {   
  10. products : [ { name: "mac", desc: "computer",   
  11. price: 1000, quantity: 100, alert:null },   
  12. { name: "ipod", desc: "music player",   
  13. price: 200, quantity: 200, alert:"on sale now!" },   
  14. { name: "cinema display", desc: "screen",   
  15. price: 800, quantity: 300, alert:"best deal!" } ],   
  16. customer : { first: "John", last: "Public", level: "gold" }   
  17. };   
  18. </script>   
  19. <textarea id="cart_jst" style="display:none;">   
  20. Hello ${customer.first} ${customer.last}.<br/>   
  21. Your shopping cart has ${products.length} item(s):   
  22. <table>   
  23. <tr><td>Name</td><td>Description</td>   
  24. <td>Price</td><td>Quantity & Alert</td></tr>   
  25. {for p in products}   
  26. <tr><td>${p.name|capitalize}</td><td>${p.desc}</td>   
  27. <td>$${p.price}</td><td>${p.quantity} : ${p.alert|default:""|capitalize}</td>   
  28. </tr>   
  29. {forelse}   
  30. <tr><td colspan="4">No products in your cart.</tr>   
  31. {/for}   
  32. </table>   
  33. {if customer.level == "gold"}   
  34. We love you! Please check out our Gold Customer specials!   
  35. {else}   
  36. Become a Gold Customer by buying more stuff here.   
  37. {/if}   
  38. </textarea>   
  39. <script language="javascript">   
  40. // The one line processing call...   
  41. var result = TrimPath.processDOMTemplate("cart_jst", data);   
  42. // Voila! That's it -- the result variable now holds   
  43. // the output of our first rendered JST.   
  44. // Alternatively, you may also explicitly parse the template...   
  45. var myTemplateObj = TrimPath.parseDOMTemplate("cart_jst");   
  46. // Now, calls to myTemplateObj.process() won't have parsing costs...   
  47. var result = myTemplateObj.process(data);   
  48. // Setting an innerHTML with the result is a common last step...   
  49. document.getElementById("outputDiv").innerHTML = result;   
  50. // You might also do a document.write() or something similar...   
  51. </script>   
  52. </body>   
  53. </html>  

相关内容
赞助商链接