Skip to content
This repository has been archived by the owner on Apr 16, 2019. It is now read-only.

Commit

Permalink
Merge pull request #22 from hd-dg/master
Browse files Browse the repository at this point in the history
memory leak fix, only reload css files
  • Loading branch information
shepherdwind committed Oct 7, 2017
2 parents 63eb466 + a0cef3f commit c5d98c7
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions hotModuleReplacement.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,28 @@ var getCurrentScriptUrl = function(moduleId) {
}

function updateCss(el, url) {
var newEl = el.cloneNode();
if (!url) {
url = el.href.split('?')[0];
}

if (!url || !url.endsWith('.css')) return;

var newEl = el.cloneNode();
newEl.addEventListener('load', function () {
el.remove();
});
newEl.addEventListener('error', function () {
el.remove();
});
newEl.href = url + '?' + Date.now();
el.parentNode.insertBefore(newEl, el.nextSibling);
}

function reloadStyle(src) {
var elements = document.querySelectorAll('link');
var loaded = false;
for (var i = 0, el = null; el = elements[i]; i++) {
var url = getReloadUrl(el.href, src);
for (let i = 0, el = null; el = elements[i]; i++) {
let url = getReloadUrl(el.href, src);
if (url) {
updateCss(el, url);
loaded = true;
Expand All @@ -64,7 +70,7 @@ function getReloadUrl(href, src) {

function reloadAll() {
var elements = document.querySelectorAll('link');
for (var i = 0, el = null; el = elements[i]; i++) {
for (let i = 0, el = null; el = elements[i]; i++) {
updateCss(el);
}
}
Expand Down

0 comments on commit c5d98c7

Please sign in to comment.