如何在GridJs中实现懒加载
Contents
[
Hide
]
关于懒加载
当处理包含大量工作表的电子表格文件时,我们可以通过最初仅加载活动工作表来优化加载过程。
此策略确保服务器端的JSON响应最初仅包含与当前选择的工作表相关的数据。
因此,最初的网页流量大大减少,提升用户体验,缩短加载时间。
此外,GridJs被设计为能动态响应用户交互,尤其是当用户点击不同工作表时,
GridJs会智能触发请求,获取特定该工作表的数据。
这种按需加载机制不仅进一步减少不必要的数据传输,还确保用户始终可以访问当前工作表的最新信息。
采用这种方式,我们不仅优化了初次加载时间,还能保持应用的响应性和高效性,随着电子表格文件中工作表数量的增加而良好扩展。
实现GridJs中的懒加载步骤如下
设置懒加载的配置选项。
例如:
Config.setLazyLoading(true);
设置懒加载的动作URL。
例如:
const lazyLoadingUrl = "/GridJs2/LazyLoading";
xs.setLazyLoadingUrl(lazyLoadingUrl);
当用户点击不是当前激活的工作表时,查询数据的操作会由电子表应用程序自动触发。
在服务器端控制器中实现懒加载操作。
例如:
@PostMapping("/LazyLoading")
public void lazyLoadingStreamJson(
@RequestParam(value = "name", required = false) String sheetName,
@RequestParam(value = "uid", required = false) String uid,
HttpServletResponse response) throws IOException {
GridJsWorkbook wbj = new GridJsWorkbook();
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setHeader(HttpHeaders.CONTENT_ENCODING, "gzip");
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(response.getOutputStream())) {
try {
wbj.lazyLoadingStream(gzipOutputStream, uid, sheetName);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}