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

Функция кеширования(трудно :))
Есть страничка, на ней есть элемент-контейнер N с содержимым(картинки), также на страничке присутствуют радиокнопки.

Когда пользователь нажимает на радиокнопку происходит Ajax-запрос и в элемент-контейнер N загружается другое содержимое

Решил сделать автокеширование, чтобы лишний раз не гонять запросы на сервер.
То есть, когда пользователь нажимает на радиокнопку, содержимое элемента-контейнера N сохраняется в объект в виде NodeList и при повторном нажатии это содержимое становится доступно из этого объекта.

Вот сам код:

var N = document.getElementById("imgCont"); // это элемент контейнер
var obj = {}; // объект, в котором будем сохранять содержимое N
var buts = document.getElementById("buttoms"); // контейнер с радиокнопками

var dir = "dir1"; // тут хранятся значения value от радиокнопок. По умолчанию dir1

function getNewContent (e) {

//..тут описан код отфильтровывающий действия на событие, он не представляет интереса...//

    saveObjectIMG(dir); // кешируем

    if (obj[e.target.value]) {

            N.innerHTML = obj[e.target.value]; // возвратим данные в контейнер

    }
    // иначе загрузим AJAXом
    else {
        //*тут ajax запрос, он не представляет интереса*//
    } 

    // В конце изменем название директории та активное
    dir = e.target.value;

}

function saveObjectIMG(param) {

    var result = N.innerHTML;
    obj[param] = result;
 
    return obj[param];

}

buts.onclick = getNewContent; // при клике на радиокнопку


Исправил, должно работать c InnerHTML

Последний раз редактировалось dmitry111, 17.10.2012 в 18:03.
Ответить с цитированием