生态桌面应用

数据源与虚拟列表

用有界增量数据源、缓存和只创建可见行的虚拟列表呈现大型集合。

普通列表适合已经在内存中的文字列。数据量很大或需要按范围取得时,言界 1.0 提供独立 数据源模块和虚拟列表;它们不创建线程、网络连接或隐式异步调度,加载器何时执行由 应用控制。

创建增量数据源

「包:言界/数据源」 数据;

 加载项目(起点,数量) 
 结果: 【】;
 偏移  范围0,数量)
        追加(结果,「项目」);

 结果;


 数据.数据源100000,加载项目);
 视图  窗口.({}).虚拟列表(源,{「首选高」320});

一次范围加载最多 256 项,默认缓存最多 1024 项;最大缓存(上限)可在 1–4096 之间调整。 加载器必须返回恰好请求数量的列。抛错、返回错误类型或数量不符时,状态原子进入失败,错误 文本保存在错误(),已缓存数据不会被部分覆盖。

更新与订阅

操作作用
提供(起点,项目列)原子写入一段已取得的数据并发送数据更新
失效(起点,数量)丢弃一段缓存并发送数据失效
设置总数(新总数)更新总数并发送数量变化
加载(起点,数量)调用加载器,校验后原子写入缓存
刷新数据()清空缓存并允许重新请求
快照()返回总数、缓存、水位、状态、错误和版本摘要

监听(事件名,回调)返回单调递增的监听编号。解除时把同一事件名和编号传给取消监听; 不要比较绑定方法对象。视图切换数据源时会按编号解除旧源订阅,旧源更新不会污染新视图。

虚拟化与无障碍

虚拟列表只请求视口附近的范围,并公开刷新数据数据状态数据错误数据数量设置行渲染器。不可用数据显示等待状态,加载期间显示加载状态,失败时显示有界错误文字。 选择、焦点和滚动位置不会因为邻近缓存更新而重建。

普通列表和虚拟列表都只为当前可见范围生成最多 256 个列表项语义节点。每项公开文字、 边界、选中状态以及选择/滚动到动作;离开当前树或来自旧修订的节点编号会被拒绝。集合值 只保存当前选中文字,数量、索引、首可见行和错误通过查询 API 读取。

数据项是文字时直接显示;其他类型默认使用有界占位。调用设置行渲染器(回调)可以按 数据值和行索引生成显示文字。完整 API 与失败恢复见 言界 1.0 数据视图指南