Skip to content

Instantly share code, notes, and snippets.

@Jabher
Created April 23, 2014 17:53
Show Gist options
  • Select an option

  • Save Jabher/11225976 to your computer and use it in GitHub Desktop.

Select an option

Save Jabher/11225976 to your computer and use it in GitHub Desktop.
'send': function (data) {
var virtualDOMTree = document.createElement('html');
virtualDOMTree.innerHTML = data;
['head', 'body'].forEach(function (tagName) {
var virtualRoot = virtualDOMTree.querySelector(tagName),
realRoot = document.querySelector(tagName);
if (!realRoot) {
document.documentElement.appendChild(realRoot = document.createElement(tagName));
}
var diff = LCSdiff(realRoot.childNodes, virtualRoot.childNodes);
diff.remove.forEach(function (record) {
record.remove();
});
diff.addGrouped.forEach(function (record) {
var html = record.elements.map(function (el) {
return el.outerHTML
}).join('');
if (record.prev) {
record.prev.insertAdjacentHTML('afterend', html);
} else {
realRoot.insertAdjacentHTML('afterbegin', html);
}
})
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment