هذه نسخة مُترجمة من الموضوع التالي: JavaScript: Working With Cookies
ما هي الكوكيز؟
السُؤال الصحيح هو "ما هي كوكيز الشبكة؟". كوكيز الشبكة هي قطعة صغيرة من البيانات النَصية اللتي تقوم بعض المواقع بتزويدها و
تخزينها مُوئقتا بِحاسُوب مُستخدم الموقع. الهَدفْ الاساسي من إستعمال الكوكيز (او ملفات تعريف الإرتباط) هو تزويد صفحات عديمة الحالة وجعل لها حالة. فمثلا,
إذا كان لدينا موقع يخدم أكثر من لُغة, بالإمكان إستخدام الكوكيز لجعل صَفحات الموقع تَتَذكر خِيار المُستخدم.
ملفات تعريف إرتباط الشبكة تتكون من ثلاثة مُكوِنات:
- الإسم.
- القيمة.
- صفر أو أكثر من أزواج المفتاح و القيمة.
my_name = ibrahim
هذا ابسط ملف تعريف إرتباط من المُمكن إنشاءه. فلهُ الإسم "my_name" و لهُ القيمة "Ibrahim".
إنشاء ملف تعريف الإرتباط
عملية إنشاء ملفات تعريف الإرتباط بجافاسكربت سهلة جدا. الجُملة التالية تُستخدم لإنشاء ملف تعريف الإرتباط السابق.
document.cookie = "my_name = ibrahim";
عند إنشاء ملف تعريف الارتباط، فمن الأفضل تحديد موعد إنتهاء للملف. إذا لم يَتم تَحديد موعد إنتهاء الصلاحية،فإن الملف سوفَ ينتهي بِمُجرد إغلاق نافذة المتصفح.
document.cookie = "my_name = ibrahim; expires = Sat, 04 Feb 2017 19:43:41 UTC";
ومن المُمَارسات الجَيدة تَحديد موعِد الإنتهاء بإستعمال UTC (التوقيت العالمي) بِما أن زُوار الموقع على شبكة الإنترنت قد يكونون من مناطق زَمنية مُختلفة.
تَحديد وقت إنتهاء مُخصص
لجعل ملف تعريف الإرتباط ينتهي بعد وقت محدد، يمكننا استخدام الكائِنْ "Date" لعمل هذا.
//إنشاء كائن جديد من نوع Date
var date = new Date();
//نُريد ملف تعريف الإرتباط ان ينتهي بعد خمسة ايام
var days = 5
var currentTime = date.getTime()
/*
لاحظ ان الثاية تحتوي على 1000 ميلي ثانية
و الدقيقة تحتوي على 60 ثانية و
الساعة تحتوي على 60 دقيقة و اليوم يحوي 24 ساعة
5 days = 1000*60*24*5 = 432000000 ميلي ثانية
إذا اردنا مِن ملف تعريف الإرتباط ان ينتهي بعد ساعتين,
علينا تحديد الوقت الحالي ليكون (الوقت الحالي + 1000*60*120)
*/
date.setTime(currentTime + 1000*60*60*24*days);
document.cookie = "my_name = ibrahim; expires = "+date.toUTCString();
تغيير مُحتوى ملف تَعريف الإرتباط
من أجل تحديث محتوى ملف تعريف الإرتباط، من الممكن أن نستخدم نفس الجملة التي هو إستعملناها لإنشاء ملف تعريف الارتباط.
//هذا ملف تعريف الإرتباط الجديد
document.cookie = "my_name = ibrahim; expires=Sat, 04 Feb 2017 19:43:41 GMT";
//هذا نفس الملف بالقيمة الجديمة
document.cookie = "my_name = ali; expires=Sat, 04 Feb 2017 19:43:41 GMT";
لِعَرض جميع ملفات تعريف الإرتباط لِموقع على شبكة الإنترنت، ببساطة نستخدم التالي:
allCookies = document.cookie;
console.log(allCookies);
ما سوفَ نَحصل عليه هو في الوَاقع سِلسلة نصية تُظهر كافة ملفات تعريف الارتباط المتاحة التي تَم إرسالها من قبل الموقع على شبكة. للحصول على قيمة الكعكة محددة، علينا أن نبني إجراء يستطيع تقسيم ملفات تعريف الإرتباط.
حَذف ملف تَعريف الإرتبط
لِحذف ملفات تعريف الارتباط، علينا فقط تحديث تاريخ انتهاء الصلاحية إلى تاريخ قد مضى. ولكن قبل عمل هذا، علينا تَعيين قيمة المِفتاح "path". فبعض المُتصفحات لا تسمح بحذف ملف تعريف الإرتباط دُون تحديد هذا المفتاح.
//إنشاء ملف تعريف الإرتباط
document.cookie = "my_name = ibrahim; expires = Sat, 04 Feb 2030 19:43:41 UTC;path=/";
//حذف ملف تعريف الإرتباط
document.cookie = "my_name = ibrahim; expires = Sat, 04 Feb 2010 00:00:00 UTC;path=/";