Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.10.2012, 22:45
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от dmitriymar Посмотреть сообщение
вопрос нахрена, если картинки?
1 гет аякс запросы кешируются.
2 картинки кешируются.
3 достаточно сохранять параметры запроса+адрес картинки если не гет, чтоб не делать запрос какой уже был
не это полюбому надо! Количество элементов меняется по требованию пользователя.
То есть конечное количество картинок не будет соответствовать кешу аякса.

И кстати, не все там так гладко с кешем аякса. Читал, уже не помню, давно было, но там есть какие-то подводные камни

Последний раз редактировалось dmitry111, 16.10.2012 в 22:51.
Ответить с цитированием
  #12 (permalink)  
Старый 16.10.2012, 22:47
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от dmitriymar Посмотреть сообщение
melky,
а сам для чего соль добавлял в гет аякс запросы? тема неоднократно была на форуме, хотя это возможно только в ие, но хотя было и не только в нём. но в случае т.с то что он получает адреса изображений. кеширование легко организать как описано у Стефанова.
В шаблонах? Мемоизация(стр 106)?
уже изучаю
Ответить с цитированием
  #13 (permalink)  
Старый 17.10.2012, 17:56
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

реализовал кеш с помощью мемоизации и innerHTML (Nekromancer спасибо!)

var cache = {}; // тут будут храниться данные и будут доступны по ключу

// сама функция кеширования:
function save (param) {

var result = N.innerHTML;
cache[param] = result;

return cache[param]

}


На самом деле вся загвоздка была в работе с NodeList. Ну никак не получалось сохранить именно данные, а не "живое представление". Возможно, можно это решить с помощью клонирования (cloneNode). Но, думаю это гораздо более затратный процесс, в отличии от innerHTML. Хотя с точки зрения подхода, кеширование с NodeList выглядит более изящным
Ответить с цитированием
  #14 (permalink)  
Старый 17.10.2012, 20:40
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

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;
}


Можно ещё примерно так.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #15 (permalink)  
Старый 17.10.2012, 22:03
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Nekromancer,

да, спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать где находится функция, на которую указывает javascript:openTag('mgmt') amigo* Общие вопросы Javascript 13 11.04.2012 12:11
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 23:49
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
Где вызывается функция? cradis Общие вопросы Javascript 5 23.04.2011 13:47
Не работает функция из подключаемого файла evgenyan jQuery 3 28.10.2010 14:48