قصد داریم طی چند پست، بصورت کاملا گسترده به سوالاتی که در یک مصاحبه جاوا اسکریپت انجام میشه بپردازیم. در آخر هم بهترین وبسایتها برای کسانی که دنبال اپلای کردن هستن هم پیشنهاد میدم.
یک دیتابیس کامل که سعی داره مشکلات localStorage رو حل کند و قابلیت نسخه گذاری روی پایگاه های داده را دارد. IDB محدودیت حجم خاصی ندارد. همچنین IDB یه دیتابیس object-oriented هست. یعنی اطلاعات به شکل object های جاوا اسکریپت ذخیره میشود که میتواند ساختار های پیچیده تری را ذخیره کنید.
یک API است که مکانیزمی را فراهم می کند که به وسیله آن مرورگرها میتوانند نام و مقدار را به صورت محلی در مرورگر کاربر ذخیره کنند، حتی ساده تر از کوکیها.
در ذخیرهسازی محلی، دادهها بدون تاریخ انقضا ذخیره میشوند و در ذخیرهسازی جلسه، دادهها برای یک سیشن ذخیره میشوند و با بسته شدن مرورگر دادهها هم از بین میروند.
در لغت یک معنیش یعنی شیرینی که اصلا این ربطی ندارد به کاری که انجام میدهد. معنی دیگری که دارد به معنی نگهداری دادههای کوچک از جمله مشخصات کاربر مثل نام، ایمیل و... در یک فایل متنی کوچک و در سیستم شخصی کاربر و نه در سرور اصلی سایت یا برنامه.
= "username=John; expires=Sat, 8 Jun 2019 12:00:00 UTC"
به طور کلی و خلاصه هنگامی که کاربر از یک صفحه بازدید می کند، مشخصات کاربر را می توان در یک کوکی ذخیره کرد. زمانی که مجدد کاربر از صفحه بازدید می کند، کوکی مشخصات کاربر را به خاطر میآورد. برای مثال دیگر لازم نیست مجدد عملیات ثبتنام در برنامه را هربار که برنامه بسته میشود را مجدد انجام دهد.
یک کوکی را با تنظیم تاریخ انقضا میتوان حذف کرد. در این مورد نیازی به تعیین مقدار کوکی ندارید:
= "username=; expires=Fri, 07 Jun 2019 00:00:00 UTC; path=/;"
برای اطمینان از حذف کوکی لازم است گزینه مسیر کوکی را هم تعریف کنید. برخی از مرورگرها اجازه حذف کوکی را نمیدهند مگر اینکه پارامتر مسیر را مشخص کنید.
کوکی: هم سمت سرور و هم سمت کاربر در دسترس هستند. با تابع Expires حذف میشوند. از SSL پشتیبانی میکنند. حداکثر حجم دادههاشون ۴ کیلوبایت است.
ذخیرهسازی محلی: فقط سمت کاربر در دسترس است. تا زمانی دلیلت نشوند حذف نمیشوند. از SSL پشتیبانی نمیشود. حداکثر حجم دادههاشون ۵ مگابایت است.
ذخیرهسازی سیشن: فقط سمت کاربر در دسترس است. تا زمانی که صفحه بسته نشود داده حذف نمیشود. از SSL پشتیبانی نمیشود. حداکثر حجم دادههاشون ۵ مگابایت است.
روشهای خواندن، نوشتن و پاک کردن دادهها در ذخیره سازی سیشن:
// Save data to sessionStorage sessionStorage.setItem("key", "value"); // Get saved data from sessionStorage let data = sessionStorage.getItem("key"); // Remove saved data from sessionStorage sessionStorage.removeItem("key"); // Remove all saved data from sessionStorage sessionStorage.clear();
قبل از هرگونه ذخیرهسازی، باید پشتیبانی مرورگر را برای ذخیرهسازی محلی و سیشن بررسی کرد:
if (typeof Storage !== "undefined") { // Code for localStorage/sessionStorage. } else { // Sorry! No Web Storage support.. }
if (typeof Worker !== "undefined") { // code for Web worker support. } else { // Sorry! No Web Worker support.. }
فانکش callback تابعی است که قرار است بعد از تابع دیگری اجرا شود. در جاوا اسکریپت و دیگر زبانهای مفسری اجرای کدها به صورت خط به خط است، زمانیکه در ترجمه خط به خط کدها مفسر به یک بخشی از کد برای مثال به یک تابع برخورد میکند که فرآیند دریافت پاسخ توسط تابع طولانی است، همزمان با اجرای آن بخش از کد، به خطهای بعدی برنامه رفته و آنها را اجرا میکند.
function callbackFunction(name) { console.log("Hello " + name); } function outerFunction(callback) { let name = prompt("Please enter your name."); callback(name); } outerFunction(callbackFunction);