09.ajax局部渲染---《Beetl视频课程》

简介:

本期视频实现分类实时获取;

内容简介:使用了局部渲染技术,实现分类的实时获取

一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598

作者:GK


Beetl满足了更加流行的方式,研发了ajax局部渲染技术。

后台处理后返回一个json,浏览器端将json数据拆开,拼成一条一条的行数据,然后生成dom节点,追加到表格里。 作为另外一种可选技术,beetl支持局部渲染技术,允许后台处理返回的是一个完成的html片段,这样,前端浏览器可以直接将这个html片段追加到表格里。在性能测试里,俩种方式性能差别不大(http://bbs.ibeetl.com/ajax//)

在beetl模板中,使用#ajax 局部命名:{ .... }包裹起来的代码,就是ajax需要渲染的局部代码。

如果一个模板返回正常的渲染整个模板文件,将会忽略这一标记,比如:return "index.html"

如果返回的是 模板名称#局部命名,Beetl将会只渲染这一小段的代码。比如return "index.html#局部命名"

举个例子,在项目中layout.html模板中,增加了一段ajax标记

<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

目录
相关文章
|
6天前
|
XML 前端开发 JavaScript
CSR(客户端渲染)和AJAX在Web开发中各自扮演不同的角色
【5月更文挑战第8天】CSR(客户端渲染)与AJAX在Web开发中各司其职。CSR提供初始HTML框架,通过JavaScript在浏览器端获取并渲染数据,提升交互性和响应速度。AJAX则实现页面局部更新,如实时搜索,不刷新页面即可获取数据。CSR可能因DOM操作多而引发性能问题,但可优化解决;AJAX适合频繁交互场景,提高响应性。两者在不同需求下各有优势,需按项目选择适用技术。
13 4
|
6天前
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
11 0
|
9月前
|
XML JSON 前端开发
异步请求,局部更新页面------Ajax
异步请求,局部更新页面------Ajax
67 0
|
6月前
|
JSON 前端开发 数据格式
ajax请求解析json数据渲染在前端界面
ajax请求解析json数据渲染在前端界面
28 0
|
6月前
|
JSON 数据格式
jQuery+ajax解析json数据渲染
jQuery+ajax解析json数据渲染
31 0
|
10月前
|
前端开发
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
大数据量学习:ajax获取数据后将数组重新分组后分批定时渲染的解决方案
68 0
|
10月前
|
前端开发 JavaScript API
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
102 0
|
10月前
|
前端开发 JavaScript
javascript将ajax返回的对象数组按照类别字段分组判断是否存在,传递echarts进行图表渲染
javascript将ajax返回的对象数组按照类别字段分组判断是否存在,传递echarts进行图表渲染
63 0
|
10月前
|
SQL JSON 前端开发
漏刻有时API接口实战开发系列(8):ajax获取本地json实现echarts不同数据图表渲染的解决方案
漏刻有时API接口实战开发系列(8):ajax获取本地json实现echarts不同数据图表渲染的解决方案
68 0
|
10月前
|
前端开发
ajax返回数据进行for双循环实现前端html渲染数据的解决方案
ajax返回数据进行for双循环实现前端html渲染数据的解决方案
126 0