Improve Sprite checking (fixes #827)
This commit is contained in:
@ -143,7 +143,14 @@ const utils = {
|
||||
const hasId = utils.is.string(id);
|
||||
let isCached = false;
|
||||
|
||||
function updateSprite(data) {
|
||||
const exists = () => document.querySelectorAll(`#${id}`).length;
|
||||
|
||||
function injectSprite(data) {
|
||||
// Check again incase of race condition
|
||||
if (hasId && exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Inject content
|
||||
this.innerHTML = data;
|
||||
|
||||
@ -151,8 +158,8 @@ const utils = {
|
||||
document.body.insertBefore(this, document.body.childNodes[0]);
|
||||
}
|
||||
|
||||
// Only load once
|
||||
if (!hasId || !document.querySelectorAll(`#${id}`).length) {
|
||||
// Only load once if ID set
|
||||
if (!hasId || !exists()) {
|
||||
// Create container
|
||||
const container = document.createElement('div');
|
||||
utils.toggleHidden(container, true);
|
||||
@ -168,7 +175,7 @@ const utils = {
|
||||
|
||||
if (isCached) {
|
||||
const data = JSON.parse(cached);
|
||||
updateSprite.call(container, data.content);
|
||||
injectSprite.call(container, data.content);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -190,7 +197,7 @@ const utils = {
|
||||
);
|
||||
}
|
||||
|
||||
updateSprite.call(container, result);
|
||||
injectSprite.call(container, result);
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
Reference in New Issue
Block a user