شاهین

رویداد ترک صفحه

پیشرفته
به‌روزرسانی ۲۰ تیر ۱۴۰۵ تحریریه شاهین ۲ دقیقه مطالعه
تلفظEN/peɪdʒ ʌnˈloʊd ɪˈvɛnt/

رویداد ترک صفحه رویدادی است که مرورگر هنگام بسته شدن یا جابه‌جایی از یک صفحه اعلام می‌کند و ابزارهای تحلیل از آن برای ارسال آخرین داده استفاده می‌کنند.

قدیمی‌ترین شکل آن unload و beforeunload است، ولی هر دو در موبایل غیرقابل‌اتکا شده‌اند: وقتی کاربر تب را عوض می‌کند یا اپ را می‌بندد، سیستم‌عامل ممکن است صفحه را بدون فراخوانی این رویدادها از حافظه بردارد. جایگزین توصیه‌شده امروز pagehide و visibilitychange است، چون هم روی موبایل فراخوانی می‌شوند و هم مانع نگهداری صفحه در حافظه پنهان مرورگر نمی‌شوند. ارسال داده در این لحظه هم مسئله خودش را دارد: درخواست معمولی ممکن است پیش از تخلیه صفحه لغو شود، به همین دلیل داده پایانی با beacon فرستاده می‌شود که مرورگر تحویلش را پس از بسته شدن صفحه هم دنبال می‌کند. نتیجه عملی این است که هیچ ابزاری زمان دقیق خروج را کامل نمی‌داند و متریک‌های وابسته به آن، مثل زمان آخرین صفحه، همیشه تخمینی‌اند.

منابع:MDN — Window: pagehide eventMDN — Navigator: sendBeacon() method