Политика замены кэша, когда поведение потребителя неизвестно
Преамбула:
Мне нужно заполнить очень большую сетку HTML5-холстами в каждой ячейке. я использую Ext JS
рамки, ячейки сетки являются сложными: переменное число div
элементы с текстом, один или два простых svg
элементы и процедурно генерируется canvas
, Для рендеринга строк таблицы Ext JS
использования bufferedRenderer
: в каждый момент времени в дереве dom присутствует только небольшая видимая часть таблицы, при прокрутке недостающие строки отображаются по требованию, а удаленные строки выбрасываются.
Создание нового холста каждый раз, когда он должен быть представлен, является хитом производительности, сохраняя каждый canvas
элемент для присоединения их к dom может потенциально вызвать раздувание памяти. (За Ext JS
пользователи: я не могу использовать Ext.grid.column.Widget
в данном конкретном случае).
Проблема:
Поэтому я решил реализовать кеш моих полотен, но я не знаю, какая политика замены кеша актуальна в моем случае: я не могу предсказать, как пользователь будет прокручивать мою таблицу. Несколько вариантов сортировки и фильтрации делают вещи еще более туманными. Существуют ли общие соображения относительно кэшей, когда вы не можете оценить поведение потребителей? Может быть, я должен просто хранить каждый n-й холст?