活字格页面性能优化的 10 个实用技巧

概述

随着活字格应用功能越来越复杂,页面加载速度和响应性能成为影响用户体验的关键因素。本文总结了 10 个经过实战验证的性能优化技巧,帮助你的活字格应用跑得更快。

1. 按需加载数据——设置加载条件

页面打开时不要一次性加载全部数据,通过设置查询条件限制初始加载量。

// 在页面加载时命令中设置默认查询
var page = Forguncy.Page;
var listview = page.getListView("表格1");
listview.setFilter("创建日期 > TODAY() - 30");  // 仅加载最近30天数据

2. 使用按需加载代替一次性加载

在表格设置中启用按需加载模式:

  • 表格设置 → 数据加载设置 → 选择「按需加载」
  • 设置每次加载行数(建议 50-100 行)
  • 用户滚动到接近底部时自动加载下一页

3. 合理使用 OData 公式

避免在表格中使用 OData 公式,每个 OData 都会发起一次独立 HTTP 请求。建议改用数据库视图或服务端命令批量获取关联数据。

// ❌ 不推荐:表格中每行都执行一次 OData
=ODATA("客户表?$filter=ID eq "&[客户ID]&"&$select=名称")

// ✅ 推荐:通过视图或关联字段直接绑定

4. 减少页面元素数量

  • 将大型页面拆分为多个子页面(标签页懒加载)
  • 隐藏区域中的控件在不需要时设置不可见,而非仅隐藏
  • 图文列表中的图片使用缩略图,点击查看原图

5. 图片和附件优化

// 使用图片压缩:上传前在客户端压缩
// 使用懒加载:仅加载可视区域的图片
// 设置合理的图片尺寸限制

6. 服务端命令异步执行

对于耗时操作(导出报表、批量计算等),使用异步服务端命令,避免阻塞页面:

  • 服务端命令 → 勾选「异步执行」
  • 通过回调或定时轮询获取执行结果

7. 数据库层面优化

  • 为查询条件涉及的字段创建索引
  • 避免使用 SELECT *,仅查询需要的列
  • 定期维护数据库统计信息和索引碎片

8. 减少 JavaScript 操作 DOM

// ❌ 低效:循环中操作 DOM
for (var i = 0; i < 1000; i++) {
    cell.setValue(i);
}

// ✅ 高效:使用批量操作
listview.setColumnData(0, dataArray);  // 一次性设置整列数据

9. 启用浏览器缓存

在发布设置中配置静态资源缓存策略:

  • CSS/JS 文件设置较长的缓存时间
  • 图片使用 CDN 加速
  • 使用版本号管理资源更新

10. 监控和定位性能瓶颈

使用浏览器开发者工具(F12)定位问题:

  • Network 面板:查看每个请求的耗时
  • Performance 面板:分析页面渲染性能
  • Console:添加 console.time() 计时
console.time("数据加载");
// ... 数据加载代码
console.timeEnd("数据加载");  // 输出耗时

总结

性能优化是一个持续的过程,建议在项目开发阶段就关注以上要点,避免后期大规模重构。优先优化用户高频访问的页面,用数据驱动优化决策。

标签: