Цитата:
То есть конечное количество картинок не будет соответствовать кешу аякса. И кстати, не все там так гладко с кешем аякса. Читал, уже не помню, давно было, но там есть какие-то подводные камни |
Цитата:
уже изучаю :victory: |
реализовал кеш с помощью мемоизации и innerHTML (Nekromancer спасибо!)
var cache = {}; // тут будут храниться данные и будут доступны по ключу
// сама функция кеширования:
function save (param) {
var result = N.innerHTML;
cache[param] = result;
return cache[param]
}
На самом деле вся загвоздка была в работе с NodeList. Ну никак не получалось сохранить именно данные, а не "живое представление". Возможно, можно это решить с помощью клонирования (cloneNode). Но, думаю это гораздо более затратный процесс, в отличии от innerHTML. Хотя с точки зрения подхода, кеширование с NodeList выглядит более изящным :) |
var cache = {}; // тут будут храниться данные и будут доступны по ключу
// сама функция кеширования:
function save(node, param) {
var cached = document.createDocumentFragment();
if (node.childNodes.length) {
for (var i = 0, nodes = node.childNodes, len = nodes.length; i < len; i++) {
cached.appendChild(nodes[i]);
}
}
cache[param] = cached;
}
function get(param) {
return param in cache ? cache[param].cloneNode(true) : null;
}
Можно ещё примерно так. |
Nekromancer,
да, спасибо! ;) |
| Часовой пояс GMT +3, время: 02:11. |