生态桌面应用
数据源与虚拟列表
用有界增量数据源、缓存和只创建可见行的虚拟列表呈现大型集合。
普通列表适合已经在内存中的文字列。数据量很大或需要按范围取得时,言界 1.0 提供独立
数据源模块和虚拟列表;它们不创建线程、网络连接或隐式异步调度,加载器何时执行由
应用控制。
创建增量数据源
引「包:言界/数据源」为 数据;
法 加载项目(起点,数量) 则
令 结果:列 为 【】;
逐 偏移 于 范围(0,数量)则
追加(结果,「项目」);
终
归 结果;
终
定 源 为 数据.数据源(100000,加载项目);
定 视图 为 窗口.列({}).虚拟列表(源,{「首选高」:320});一次范围加载最多 256 项,默认缓存最多 1024 项;最大缓存(上限)可在 1–4096 之间调整。
加载器必须返回恰好请求数量的列。抛错、返回错误类型或数量不符时,状态原子进入失败,错误
文本保存在错误(),已缓存数据不会被部分覆盖。
更新与订阅
| 操作 | 作用 |
|---|---|
提供(起点,项目列) | 原子写入一段已取得的数据并发送数据更新 |
失效(起点,数量) | 丢弃一段缓存并发送数据失效 |
设置总数(新总数) | 更新总数并发送数量变化 |
加载(起点,数量) | 调用加载器,校验后原子写入缓存 |
刷新数据() | 清空缓存并允许重新请求 |
快照() | 返回总数、缓存、水位、状态、错误和版本摘要 |
监听(事件名,回调)返回单调递增的监听编号。解除时把同一事件名和编号传给取消监听;
不要比较绑定方法对象。视图切换数据源时会按编号解除旧源订阅,旧源更新不会污染新视图。
虚拟化与无障碍
虚拟列表只请求视口附近的范围,并公开刷新数据、数据状态、数据错误、数据数量和
设置行渲染器。不可用数据显示等待状态,加载期间显示加载状态,失败时显示有界错误文字。
选择、焦点和滚动位置不会因为邻近缓存更新而重建。
普通列表和虚拟列表都只为当前可见范围生成最多 256 个列表项语义节点。每项公开文字、
边界、选中状态以及选择/滚动到动作;离开当前树或来自旧修订的节点编号会被拒绝。集合值
只保存当前选中文字,数量、索引、首可见行和错误通过查询 API 读取。
数据项是文字时直接显示;其他类型默认使用有界占位。调用设置行渲染器(回调)可以按
数据值和行索引生成显示文字。完整 API 与失败恢复见
言界 1.0 数据视图指南。