序言:
我必须在每个单元格中填充一个包含HTML5画布的非常大的网格。
我使用Ext JS
框架,网格单元格很复杂:可变数量的div
元素带有文本,一个或两个简单的svg
元素和一个程序生成的canvas
。对于表格行的渲染Ext JS
使用bufferedRenderer
:在每个时刻只有一个小的可见部分表存在于dom树中,在滚动期间,丢失的行按需呈现,远处的行被丢弃。
每次需要渲染时创建一个新画布是一个性能命中,保存每个canvas
元素以将它们重新连接到dom可能会导致内存膨胀。 (对于Ext JS
个用户:在这种特定情况下我无法使用Ext.grid.column.Widget
。
问题:
所以我决定实现画布的缓存,但我不知道,cache replacement policy在我的情况下是相关的:我无法预测用户滚动表格的方式。多种排序和过滤选项使事情变得更加模糊。对于无法估计消费者行为的缓存,是否有任何一般性考虑因素?也许我应该只存储每个第n个画布?