صفحه اصلی بررسی وبلاگ ها LocalStorage در جاوااسکریپت چیست و چه کاربردی دارد ؟

LocalStorage در جاوااسکریپت چیست و چه کاربردی دارد ؟

46 second read
دیدگاه‌ها برای LocalStorage در جاوااسکریپت چیست و چه کاربردی دارد ؟ بسته هستند
0
0

LocalStorage در جاوااسکریپت چیست و چه کاربردی دارد ؟

LocalStorage بخشی از استاندارد Web Storage API است که برای نگهداری داده‌های سمت کاربر طراحی شده. داده‌ها به‌صورت کلید‑مقدار (key‑value) در مرورگر نگهداری می‌شوند. این داده‌ها فقط متنی هستند (string) و محدود به دامنه‌ی وب‌سایت ارائه‌کننده‌ هستند.

برخلاف کوکی‌ها، داده‌های LocalStorage با درخواست‌های HTTP ارسال و دریافت نمی‌شوند و فقط توسط جاوااسکریپت می‌توانند ذخیره و بازیابی فروش بک لینک شوند که این موضوع باعث بهبود کارایی نسبت به کوکی‌ها می‌شود.

تفاوت LocalStorage با کوکی چیست ؟

ماندگاری داده‌ها در LocalStorage

داده‌ها در LocalStorage تا زمانی که به‌صورت دستی حذف یا مرورگر پاک‌سازی شود باقی می‌مانند. برخلاف SessionStorage که فقط تا پایان همان تب یا نشست فعال است، LocalStorage پس از بسته شدن مرورگر نیز حفظ می‌شود.

در نتیجه، اطلاعات می‌توانند «دائمی» باشند، ولی دائمی بودن کامل وابسته به سیاست‌های مرورگر و رفتار کاربر (مثل پاک کردن Cache یا استفاده از حالت Private/Incognito) است.

ذخیره و بازیابی داده‌ها در LocalStorage

انجام این‌کار با استفاده از جاوااسکریپت به آسانی قابل انجام است. به مثال‌های زیر توجه کنید:

ذخیره‌سازی نام کاربر و نمایش آن در صفحات دیگر:

امنیت در LocalStorage

کاربرد LocalStorage برای بهبود عملکرد سیستم طراحی شده است و زیرساخت‌های امنیتی برای داده‌های حساس را ندارد.

داده‌ها بدون رمزگذاری روی دیسک ذخیره می‌شوند.

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

فقط اسکریپت‌هایی از همان دامنه قادر به خواندن یا تغییرآن‌ها هستند. اما خطر اصلی XSS (Cross‑Site Scripting) است.

با توجه به نکات بالا،‌ برنامه‌نویس باید دقت کافی داشته باشد تا اطلاعات حساس و خصوصی را در این سیستم ذخیره نکند.

مشاهده و تغییر داده‌ها

فقط صفحه یا اسکریپت‌هایی در همان origin (ترکیب دامنه + پروتکل + پورت) قادر به مشاهده و تغییر هستند.
کاربران می‌توانند داده‌ها را از طریق کنسول مرورگر مشاهده و ویرایش کنند.
سایت‌های دیگر یا تب‌های خارج از دامنه، امکان مشاهده یا تغییر ندارند.

محدودیت حجم

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

Chrome / Edge / Firefox
۵ تا ۱۰ مگابایت

Safari (iOS/macOS)
حدود ۵ مگابایت

Opera / Brave
حدود ۵ مگابایت

داده‌ها باید رشته‌ای باشند. برای ساختارهای بزرگ می‌توان از داده‌های جیسون(JSON) استفاده کنید.
ذخیرهٔ داده‌های چند ده کیلوبایتی (مثل تنظیمات، کش تصاویر کوچک یا وضعیت سشن) عملی و سریع است، اما برای داده‌های حجیم بهتر است از روش‌های دیگر و مطمئن‌تر استفاده کنید.

چه داده‌هایی را می‌توان در LocalStorage ذخیره کرد ؟

به طور کلی اطلاعاتی که دسترسی به آن در تمام درخواست‌ها ضروری است و اطلاعات حساس به حساب نمی‌آیند و حجم آن کمتر از ۵ مگابایت باشد می‌تواند در LocalStorage نگهداری شود. مواردی مثل:

پیکربندی یا ترجیحات کاربر (نمای تیره، زبان، موقعیت منو)

اطلاعات وضعیت موقت (progress فرم، آخرین صفحه مشاهده‌شده)

کش داده‌های API سبک

اطلاعات متنی یا JSON با حجم کمتر از چند صد کیلوبایت

برای داده‌های ساختاریافته سنگین‌تر (عکس، ویدئو، فایل) باید از IndexedDB یا Cache Storage استفاده شود.

اشتراک داده‌ها بین تب‌ها

LocalStorage به‌صورت اشتراکی بین تمام تب‌های یک دامنه عمل می‌کند. اگر در یک تب داده تغییر کند، تب دیگر به آن اطلاعات دسترسی دارند. اما مرورگر تا زمان وقوع رویداد storage ، این تغییر را به تب‌های دیگر اطلاع نمی‌دهد.

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

نکته: این رویداد در تب‌های دیگر قابل استفاده است و در تبی که تغییر را انجام داده است، فراخوانی نمی‌شود.

روش‌های دیگر ذخیره‌سازی در مرورگر

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

سرعت و کارایی

LocalStorage بسیار سریع‌تر از کوکی‌ها است زیرا:

در حافظه‌ی مرورگر نگهداری می‌شود.

نیازی به ارسال در هر درخواست HTTP ندارد.

عملیات خواندن و نوشتن آن تقریبا فوری است (در حد چند میلی‌ثانیه برای کیلوبایت‌ها).

اما در داده‌های سنگین‌تر از چند مگابایت، سرعت افت می‌کند و ممکن است در عملیات I/O یا تبدیل JSON تاخیر واضح دیده شود. برای چنین کاربردهایی، IndexedDB انتخاب بهینه‌تری است (به‌ویژه در اپلیکیشن‌های PWA یا داشبوردهای بزرگ).

جمع‌بندی ویژگی‌های LocalStorage

اگر بخواهیم بر اساس ابعاد و نیازهای پروژه نیازها را طبقه‌بندی کنیم، فهرست زیر یک راهنمای مناسب است:

LocalStorage
مناسب Front-End سبک و داده‌های فوری

IndexedDB
مناسب رابط‌های پایگاه‌داده م حلی بزرگ

Cache Storage
مناسب ذخیرهٔ فایل‌های ایستا برای اجرا آفلاین

آنچه می‌دانی، تا نگویی، هنوز ناتمام است

بیشتر بخوانید:

Service Worker چیست ؟

TypeScript چیست و چرا از آن استفاده می‌شود ؟

راه اندازی لاراول روی سرور ویندوزی – نکات و محدودیت‌ها

معرفی چند جایگزین سبک و سریع برای Vue و React

روش‌های اجرای کد جاوااسکریپت بعد از بارگزاری صفحه

انواع روش‌های ذخیره‌سازی تاریخ شمسی در پایگاه داده

هاست مناسب برای لاراول – نکات مهم و راهنمای انتخاب

اعتبارسنجی شماره موبایل با عبارت‌های با قاعده(Regex)

آشنایی با توابع whereAny و whereAll در لاراول

ذخیره آرایه با php در پایگاه داده

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیدگاه *

نام *

ایمیل *

وب‌ سایت

Load More Related Articles
Load More By مدیر سایت
Load More In بررسی وبلاگ ها
Comments are closed.

Check Also

آشنایی کامل با سئو تکنیکال و ترفندهای کاربردی آن برای کسب رتبه بهتر در نتایج گوگل

ساخت سایت و فروشگاه اینترنتی آشنایی کامل با سئو تکنیکال و ترفندهای کاربردی آن برای کسب رتب…