Цитата:
То есть конечное количество картинок не будет соответствовать кешу аякса. И кстати, не все там так гладко с кешем аякса. Читал, уже не помню, давно было, но там есть какие-то подводные камни |
Цитата:
уже изучаю :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, время: 05:54. |