localStorage
هو جزء من Web Storage API يسمح بتخزين بيانات في المتصفح بشكل دائم (حتى بعد إغلاق المتصفح).
البيانات تبقى محفوظة حتى يتم حذفها يدويًا أو من خلال الكود.
💡 خصائص Local Storage:
الخاصية | القيمة |
---|---|
التخزين | دائم (يبقى حتى يُحذف يدويًا) |
السعة | حوالي 5 إلى 10 ميجابايت حسب المتصفح |
التخزين حسب النطاق | نعم (يعمل فقط داخل نفس الموقع/النطاق) |
نوع البيانات | يتم تخزين البيانات كـ نصوص (Strings) فقط |
📦 دوال التعامل مع localStorage:
الوظيفة | الدالة |
---|---|
إضافة أو تعديل عنصر | localStorage.setItem(key, value) |
قراءة عنصر | localStorage.getItem(key) |
حذف عنصر | localStorage.removeItem(key) |
حذف كل العناصر | localStorage.clear() |
عدد العناصر الموجودة | localStorage.length |
الحصول على مفتاح حسب الفهرس | localStorage.key(index) |
✅ أمثلة شاملة:
🟢 1. حفظ بيانات:
localStorage.setItem("username", "Yasin");
JavaScriptيخزن مفتاح username
بالقيمة Yasin
.
🟢 2. قراءة بيانات:
let name = localStorage.getItem("username");
console.log(name); // Yasin
JavaScript🟢 3. تعديل قيمة موجودة:
localStorage.setItem("username", "Ahmed"); // يتم استبدال القيمة
JavaScript🟢 4. حذف عنصر:
localStorage.removeItem("username");
JavaScript🟢 5. حذف جميع العناصر:
localStorage.clear();
JavaScript🟢 6. معرفة عدد العناصر:
console.log(localStorage.length); // عدد المفاتيح المخزنة
JavaScript🟢 7. جلب اسم مفتاح حسب ترتيبه:
let firstKey = localStorage.key(0);
console.log(firstKey);
JavaScript🔁 تخزين واسترجاع كائن (Object)
localStorage.setItem("user", {name: "Ali"}); // ❌ يخزن [object Object]
JavaScript✅ الصحيح: استخدم JSON
let user = { name: "Ali", age: 25 };
localStorage.setItem("user", JSON.stringify(user));
JavaScript🟢 قراءة:
let userData = JSON.parse(localStorage.getItem("user"));
console.log(userData.name); // Ali
JavaScriptlet color = document.getElementById("color");
let color1 = document.getElementById("color1");
// Apply stored background color on page load
document.body.style.backgroundColor = localStorage.getItem("color");
// When color button is clicked
color.addEventListener("click", () => {
window.localStorage.setItem("color", "green");
document.body.style.backgroundColor = "green";
});
color1.addEventListener("click", () => {
window.localStorage.setItem("color", "blue");
document.body.style.backgroundColor = "blue";
});
JavaScript🧪 مثال تطبيقي كامل (HTML + JS)
<input type="text" id="usernameInput" placeholder="اكتب اسمك">
<button onclick="saveName()">💾 حفظ</button>
<button onclick="loadName()">📥 تحميل</button>
<button onclick="deleteName()">🗑️ حذف</button>
<p id="output"></p>
<script>
function saveName() {
let name = document.getElementById("usernameInput").value;
localStorage.setItem("username", name);
alert("تم الحفظ!");
}
function loadName() {
let name = localStorage.getItem("username");
document.getElementById("output").innerText = name ?? "لا يوجد اسم محفوظ";
}
function deleteName() {
localStorage.removeItem("username");
alert("تم الحذف");
}
</script>
JavaScript⚠️ ملاحظات مهمة:
- لا يمكن تخزين تواريخ أو دوال أو كائنات مباشرة بدون تحويلها إلى نصوص.
localStorage
يعمل فقط في المتصفح (client-side).- كل موقع يملك مساحة تخزين مستقلة.
- غير مناسب لتخزين بيانات حساسة (لأنه قابل للعرض من أدوات التطوير بسهولة).
🎁 مقارنة سريعة مع sessionStorage
الميزة | localStorage | sessionStorage |
---|---|---|
المدة الزمنية | دائم | حتى غلق التبويب فقط |
المساحة | ~5-10MB | ~5MB |
المشاركة بين التبويبات | نعم | لا |