وقتی کاربران در اینترنت گشتوگذار میکنند، مدام از صفحهای به صفحه دیگر میروند و برای بازگشت به صفحات قبلی یا رفتن به صفحات بعدی، از دکمههای فلش مرورگر خود استفاده میکنند. در جاوااسکریپت، شیء History به برنامهنویسان اجازه میدهد تا به این تاریخچه ناوبری مرورگر دسترسی داشته باشند و آن را مدیریت کنند. این شیء که به عنوان یکی از اجزای اصلی مدل شیءگرای مرورگر (BOM) شناخته میشود، ابزاری بسیار قدرتمند برای هدایت کاربر و ساخت اپلیکیشنهای تکصفحهای (SPA) به شمار میرود.
نقش شیء History در مرورگر
شیء History در واقع بخشی از شیء سراسری window است که تاریخچهای از آدرسهای بازدیدشده توسط کاربر در تب یا پنجره فعلی مرورگر را در خود ذخیره میکند. برای حفظ امنیت و حریم خصوصی کاربران، این شیء به برنامهنویس اجازه نمیدهد که آدرسهای دقیق وبسایتهای دیگری که کاربر قبلاً بازدید کرده است را ببیند؛ اما به شما این امکان را میدهد که کاربر را در میان صفحات قبلی و بعدی بازدیدشده در سایت خودتان جابهجا کنید.
با استفاده از این شیء، میتوان تعداد صفحات موجود در تاریخچه تب فعلی را بررسی کرد و بر اساس نیاز، سناریوهای مختلفی برای دکمههای بازگشت یا هدایت مجدد کاربر طراحی نمود.
حرکت در تاریخچه مرورگر
یکی از متداولترین کاربردهای شیء History، شبیهسازی رفتار دکمههای بازگشت (Back) و جلو (Forward) مرورگر است. جاوااسکریپت متدهای بسیار سادهای برای این کار در اختیار ما میگذارد.
شما میتوانید با استفاده از متدهای پیشفرض، کاربر را دقیقاً یک مرحله به صفحه قبل بازگردانید؛ رفتاری که کاملاً مشابه کلیک روی دکمه بازگشت مرورگر است. همچنین متد دیگری وجود دارد که کاربر را یک مرحله به سمت جلو (در صورت وجود صفحه بعدی در تاریخچه) هدایت میکند. علاوه بر این، متد منعطفتری نیز در دسترس است که به کمک آن میتوانید کاربر را به تعداد مشخصی صفحه به عقب یا جلو ببرید؛ به عنوان مثال، با پاس دادن عدد منفی دو، کاربر به دو صفحه قبل هدایت میشود.
کاربرد History در اپلیکیشنهای تکصفحهای (SPA)
با ظهور فریمورکهای مدرن جاوااسکریپت و رواج اپلیکیشنهای تکصفحهای، نقش شیء History بسیار پررنگتر از گذشته شد. در این نوع اپلیکیشنها، بدون اینکه صفحه وب به طور کامل از سرور مجدداً دانلود و بارگذاری شود، محتوای صفحه با کدهای جاوااسکریپت تغییر میکند. در چنین شرایطی، اگر آدرس بار مرورگر تغییر نکند، کاربر نمیتواند صفحه را بوکمارک کند یا از دکمه بازگشت استفاده کند.
برای حل این مشکل، متدهای ویژهای در شیء History تعبیه شدهاند که به برنامهنویس اجازه میدهند آدرس موجود در نوار آدرس مرورگر را بدون بارگذاری مجدد صفحه تغییر دهد. این کار باعث میشود کاربر احساس کند وارد صفحه جدیدی شده است، در حالی که همه چیز در همان صفحه و با سرعت بسیار بالا مدیریت میشود.
متدهای مدرن برای مدیریت تاریخچه بدون بارگذاری صفحه
دو متد کلیدی که مدیریت تاریخچه در وب مدرن را متحول کردند، به برنامهنویس اجازه میدهند دادهها و آدرسهای جدیدی را به تاریخچه اضافه کنند یا آدرس فعلی را ویرایش نمایند.
متد اول یک آدرس جدید به همراه اطلاعات دلخواه به لیست تاریخچه اضافه میکند و آدرس نوار ابزار مرورگر را بهروزرسانی میکند، بدون اینکه صفحه دوباره لود شود. متد دوم نیز به جای اضافه کردن آیتم جدید، آدرس و دادههای صفحه فعلی را در تاریخچه جایگزین میکند. این روشها پایه و اساس سیستمهای مسیریابی (Routing) در وبسایتهای مدرن هستند و تجربه کاربری بسیار روانتری را برای بازدیدکنندگان فراهم میسازند.
امنیت و محدودیتهای شیء History
با وجود قابلیتهای جذابی که این شیء ارائه میدهد، مرورگرها محدودیتهای امنیتی شدیدی برای آن وضع کردهاند. مهمترین محدودیت این است که شما هرگز نمیتوانید آدرسهایی خارج از دامنه (Domain) خود را به تاریخچه مرورگر اضافه یا جایگزین کنید؛ این کار از حملات فیشینگ و جعل آدرس جلوگیری میکند.
همچنین، همانطور که اشاره شد، شما نمیتوانید لیست کامل سایتهایی که کاربر قبل از ورود به سایت شما بازدید کرده است را بخوانید. این تعادل بین دسترسیهای توسعهدهنده و حفظ حریم خصوصی کاربر، امنیت گشتوگذار در وب را تضمین میکند.
کلیدواژه ها : شیء History در جاوااسکریپت-مدیریت تاریخچه در مرورگر-کار با تاریخچه مرورگر-آموزش شیء History-مسیریابی در جاوااسکریپت-JavaScript History Object-Browser History API-Single Page Application Routing-pushState and replaceState-BOM History Object-