Не уверен, что правильно сформулировал вопрос.
Для дерева нарисовал кучу иконок в канвасе и закинул их в объект, примерно так:
var imgFromCnvs = NewElem.toDataURL("image/png");
var ElemIdName = 'treeVLineLast';
treeEl.imgs[ElemIdName]=imgFromCnvs;
А потом вот так отображаю их на странице:
NewElem.style.backgroundImage = 'url("'+treeEl.imgs.treeVLineLast+'")';
Потом заглянул в консоль браузера и ужаснулся. Получается, что я многократно (сотни или даже тысячи раз) дублирую эти картинки, вместо того, чтобы использовать ссылку на объект. Собственно, тут и пришло понимание, что dataURL - это данные, которые можно использовать как ссылку. Но от этого легче не стало.
Подумывал разместить картинку на странице и сделать display:'none', но src картинки тот же, так что не вариант.
Почему я не использую канвас напрямую?
Идея была такая: при загрузке страницы наделать картинок и отложить канвас в сторону, далее оперировать картинками, сохранёнными в объекте.