From 2533cf2639716128aa3ad475452dddbcb107705b Mon Sep 17 00:00:00 2001 From: mildfire Date: Wed, 8 Jul 2026 19:53:37 +0500 Subject: [PATCH] perf: keep Slise banner mounted across navigation + gapless per-page refresh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #686 fixed cold-load, but the banner still went blank during client-side page switches (measured on ping.pub: ~500ms median, up to ~2.5s on heavy pages). Cause: lived inside , so it was destroyed/recreated on every navigation — Slise blanked the and only repainted once the destination page had mounted, so the delay tracked page weight. Fix: - Move out of in DefaultLayout so it mounts once and persists across navigation (never unmounts -> never blanks). - In AdBanner, watch route.fullPath and refresh gaplessly: drop data-ad-loaded (keeping the old creative on screen) then call adsbyslisesync(); Slise swaps the new creative in only when ready, so there is no blank gap. Preserves a fresh creative/impression per page view. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/components/ad/AdBanner.vue | 12 +++++++++++- src/layouts/components/DefaultLayout.vue | 6 ++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/components/ad/AdBanner.vue b/src/components/ad/AdBanner.vue index 44431a4c75..a455860970 100644 --- a/src/components/ad/AdBanner.vue +++ b/src/components/ad/AdBanner.vue @@ -2,6 +2,7 @@