[]
        
(Showing Draft Content)

【示例解读】前端/客户端缓存Demo

type=info

推荐

请下载示例后使用活字格设计器打开,对照本页面的解读,深入了解详情。

前端缓存需要使用客户端缓存操作工具插件(配合活字格V8.0.104.0或更高版本)。


客户端缓存DEMO-v9.fgcc

重点关注

示例展示了通过前端缓存机制为商品(存货档案)和库位的联动式组合框加速。相比于通过数据绑定的方式,客户端缓存方案大幅减少了对服务器的请求和带宽占用。效果如上面Demo中的“Query”页面所示,开发的思路如下:

  • 第一步,建立版本控制机制,维护资源(如demo中的存货档案列表、库位列表等)的版本号。参考:Demo中“ResourceVersion”表

    • 建立ResourceVersion表,为每一个使用缓存的资源(如表、视图)创建一行记录

    • 当资源的数据有修改(C/U/D)时,同步更新ResourceVersion

  • 第二步,先读取资源的当前版本,然后查询缓存数据。参考:Demo中的“获取前端缓存_存货档案”模板命令

    • 调用服务端命令,从ResourceVersion中获取该资源的版本号

    • 调用【从客户端缓存中读取】命令,传入版本号和缓存名称,将对象格式的缓存数据存储到变量

  • 第三步,判断缓存中是否有最新版本的数据。参考:Demo中的“获取前端缓存_存货档案”模板命令

    • 通过判断上一步生成的变量的数据是否为DATA_NOT_FOUND来判断缓存是否有效

  • 第四步,根据缓存的有效性,直接使用缓存,或从服务器获取最新的资源。参考:Demo中的“获取前端缓存_存货档案”模板命令

    • 如果缓存可用,根据应用场景不同有不同的做法

      • 使用【JSON反序列化】命令,将字符串还原为数组,用于填充【EL-选择器】的候选列表。参考:Demo中“Query”页面的页面加载命令

      • 使用【JSON反序列化】命令,将字符串还原为数组,通过【循环】命令来做进一步加工处理

      • 使用【导入JSON到表格】命令,用于填充表格

    • 如果缓存不可用,则需要从服务器端获取数据使用,参考:Demo中的“获取前端缓存_存货档案”模板命令

      • 通过服务端命令或设置变量命令,从服务器获取最新的数据

      • 将数据和第一步读取到的版本一起,通过【写入客户端缓存】命令存入缓存

      • 提供给当前功能使用

测试结果

测试环境:活字格云 企业版 / 带宽限制为2Mbps / 3个组合框的数据量均为500行。


点击观看对比视频:


CacheVsNoCache.mp4

有前端缓存

image

测试对象:WithCache页面

加载时间:0.71s

网络传输:5.5KB

无前端缓存

image


测试对象:WithoutCache页面

加载时间:1.09s

网络传输:9.3KB