perf: optimize pjax
This commit is contained in:
parent
0ea7753fe7
commit
a5806ad20a
|
@ -8,16 +8,16 @@
|
||||||
'.pjax',
|
'.pjax',
|
||||||
],
|
],
|
||||||
history: true,
|
history: true,
|
||||||
cacheBust: false,
|
|
||||||
currentUrlFullReload: false,
|
|
||||||
timeout: 0,
|
|
||||||
scrollTo: false,
|
|
||||||
scrollRestoration: false,
|
|
||||||
debug: false,
|
debug: false,
|
||||||
|
cacheBust: false,
|
||||||
|
// analytics: false,
|
||||||
|
// currentUrlFullReload: false,
|
||||||
|
// scrollRestoration: false,
|
||||||
|
// scrollTo: true,
|
||||||
|
// timeout: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('pjax:complete', () => {
|
window.addEventListener('pjax:complete', () => {
|
||||||
|
|
||||||
KEEP.refresh();
|
KEEP.refresh();
|
||||||
pjax.executeScripts(document.querySelectorAll('script[data-pjax], .pjax script'));
|
pjax.executeScripts(document.querySelectorAll('script[data-pjax], .pjax script'));
|
||||||
});
|
});
|
||||||
|
|
|
@ -20,19 +20,21 @@ KEEP.initHeaderShrink = () => {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
initMenuBarButton() {
|
toggleHeaderDrawerShow() {
|
||||||
document.querySelector('.menu-bar').addEventListener('click', () => {
|
const domList = [document.querySelector('.window-mask'), document.querySelector('.menu-bar')];
|
||||||
document.body.classList.toggle('header-drawer-show');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
initWindowMask() {
|
if (KEEP.theme_config.pjax.enable === true) {
|
||||||
document.querySelector('.window-mask').addEventListener('click', () => {
|
domList.push(...document.querySelectorAll('.header-drawer .drawer-menu-list .drawer-menu-item'));
|
||||||
|
}
|
||||||
|
|
||||||
|
domList.forEach(v => {
|
||||||
|
v.addEventListener('click', () => {
|
||||||
document.body.classList.toggle('header-drawer-show');
|
document.body.classList.toggle('header-drawer-show');
|
||||||
});
|
});
|
||||||
},
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
KEEP.utils.headerShrink.init();
|
KEEP.utils.headerShrink.init();
|
||||||
KEEP.utils.headerShrink.initMenuBarButton();
|
KEEP.utils.headerShrink.headerShrink();
|
||||||
KEEP.utils.headerShrink.initWindowMask();
|
KEEP.utils.headerShrink.toggleHeaderDrawerShow();
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ function initLeftSideToggle() {
|
||||||
KEEP.utils.leftSideToggle.initToggleBarButton();
|
KEEP.utils.leftSideToggle.initToggleBarButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (KEEP.theme_config.pjax && KEEP.utils) {
|
if (KEEP.theme_config.pjax.enable === true && KEEP.utils) {
|
||||||
initLeftSideToggle();
|
initLeftSideToggle();
|
||||||
} else {
|
} else {
|
||||||
window.addEventListener('DOMContentLoaded', initLeftSideToggle);
|
window.addEventListener('DOMContentLoaded', initLeftSideToggle);
|
||||||
|
|
|
@ -2,6 +2,7 @@ function initTOC() {
|
||||||
KEEP.utils.navItems = document.querySelectorAll('.post-toc-wrap .post-toc li');
|
KEEP.utils.navItems = document.querySelectorAll('.post-toc-wrap .post-toc li');
|
||||||
|
|
||||||
if (KEEP.utils.navItems.length > 0) {
|
if (KEEP.utils.navItems.length > 0) {
|
||||||
|
|
||||||
KEEP.utils = {
|
KEEP.utils = {
|
||||||
|
|
||||||
...KEEP.utils,
|
...KEEP.utils,
|
||||||
|
@ -16,7 +17,7 @@ function initTOC() {
|
||||||
} else if (index > 0) {
|
} else if (index > 0) {
|
||||||
index--;
|
index--;
|
||||||
}
|
}
|
||||||
KEEP.utils.activateNavByIndex(index);
|
this.activateNavByIndex(index);
|
||||||
},
|
},
|
||||||
|
|
||||||
registerSidebarTOC() {
|
registerSidebarTOC() {
|
||||||
|
@ -41,7 +42,7 @@ function initTOC() {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
activateNavByIndex: function (index) {
|
activateNavByIndex(index) {
|
||||||
const target = document.querySelectorAll('.post-toc li a.nav-link')[index];
|
const target = document.querySelectorAll('.post-toc li a.nav-link')[index];
|
||||||
if (!target || target.classList.contains('active-current')) return;
|
if (!target || target.classList.contains('active-current')) return;
|
||||||
|
|
||||||
|
@ -70,14 +71,16 @@ function initTOC() {
|
||||||
KEEP.utils.leftSideToggle.changePageLayoutWhenOpenToggle(KEEP.utils.leftSideToggle.isOpenPageAside);
|
KEEP.utils.leftSideToggle.changePageLayoutWhenOpenToggle(KEEP.utils.leftSideToggle.isOpenPageAside);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KEEP.utils.showPageAsideWhenHasTOC();
|
KEEP.utils.showPageAsideWhenHasTOC();
|
||||||
KEEP.utils.registerSidebarTOC();
|
KEEP.utils.registerSidebarTOC();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
KEEP.utils.pageContainer_dom.removeChild(document.querySelector('.page-aside'));
|
KEEP.utils.pageContainer_dom.removeChild(document.querySelector('.page-aside'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (KEEP.theme_config.pjax && KEEP.utils) {
|
if (KEEP.theme_config.pjax.enable === true && KEEP.utils) {
|
||||||
initTOC();
|
initTOC();
|
||||||
} else {
|
} else {
|
||||||
window.addEventListener('DOMContentLoaded', initTOC);
|
window.addEventListener('DOMContentLoaded', initTOC);
|
||||||
|
|
Loading…
Reference in New Issue