本期視頻實現分類實時獲取;javascript
內容簡介:使用了局部渲染技術,實現分類的實時獲取html
一塊兒學beetl目錄:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598前端
做者:GKjava
Beetl知足了更加流行的方式,研發了ajax局部渲染技術。git
後臺處理後返回一個json,瀏覽器端將json數據拆開,拼成一條一條的行數據,而後生成dom節點,追加到表格裏。 做爲另一種可選技術,beetl支持局部渲染技術,容許後臺處理返回的是一個完成的html片斷,這樣,前端瀏覽器能夠直接將這個html片斷追加到表格裏。在性能測試裏,倆種方式性能差異不大(http://bbs.ibeetl.com/ajax//)ajax
在beetl模板中,使用#ajax 局部命名:{ .... }
包裹起來的代碼,就是ajax須要渲染的局部代碼。sql
若是一個模板返回正常的渲染整個模板文件,將會忽略這一標記,好比:return "index.html"
json
若是返回的是 模板名稱#局部命名,Beetl將會只渲染這一小段的代碼。好比return "index.html#局部命名"
瀏覽器
舉個例子,在項目中layout.html
模板中,增長了一段ajax標記app
<div class="widewrapper main"> <div class="container"> <div class="row"> <div class="col-md-8 blog-main"> ${layoutContent} </div> <%if(isEmpty(notShow)){%> <aside class="col-md-4 blog-aside" id="tagsDiv"> <%#ajax tags :{%> <div class="aside-widget"> <header> <h3>Tags</h3> </header> <div class="body clearfix"> <ul class="tags"> <%for(tag in categorys!){%> <li><a href="/?category=${tag}">${tag}</a></li> <%}%> </ul> </div> </div> <%} }%> </aside> </div> </div> </div>
你們能夠看到有一段使用 #ajax tags{}
包裹起來的代碼
<%#ajax tags :{%> ..... <%}%>
當controller中直接 return "layout.html"
時,將會渲染整個頁面。
咱們在controller中增長一個方法。
@GetMapping("/tags") public String tags(HttpServletRequest request) { request.setAttribute("categorys", blogService.listCategory()); return "common/layout.html#tags"; }
告訴beetl模板引擎,只渲染tags中間的代碼。
能夠看到咱們渲染的代碼爲:
<div class="aside-widget"> <header> <h3>Tags</h3> </header> <div class="body clearfix"> <ul class="tags"> <li><a href="/?category=beetl">beetl</a></li> <li><a href="/?category=beetlsql">beetlsql</a></li> <li><a href="/?category=java">java</a></li> <li><a href="/?category=一塊兒學Beetl">一塊兒學Beetl</a></li> </ul> </div> </div>
僅僅渲染了咱們中間這一段代碼,能讓咱們更加優雅使用。
咱們在前端只要使用js加入這段渲染的html代碼便可。
<script type="text/javascript"> $(function(){ $.get("${ctxPath}/tags",function (data) { $("#tagsDiv").html(data); console.info(data); }); }); </script>
項目git地址:https://gitee.com/gavink/beetl-blog
視頻地址:下載下來會更清晰,視頻比較長,可以使用倍速看
百度網盤下載: https://pan.baidu.com/s/1LyxAxlKpVXgVjwSXIbzBuA 提取碼: 68im
在線播放地址:bilibili (能夠調節清晰度): https://www.bilibili.com/video/av36278644/?p=9
博客目錄:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598