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;
}
Можно ещё примерно так.