Есть страничка, на ней есть элемент-контейнер 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