Cookies تتيح لك تخزين معلومات المستخدم في صفحات الويب.
ما هي Cookies ؟
Cookies هي البيانات وتخزينها في ملفات نصية صغيرة، على جهاز الكمبيوتر الخاص بك.
عندما بعث خادم الويب صفحة الويب إلى المتصفح، يتم إيقاف اتصال أسفل، والخادم نسي كل شيء عن المستخدم.
Cookies اخترعت من أجل حل مشكلة "كيفية تذكر معلومات عن المستخدم":
- عندما يقوم المستخدم بزيارة صفحة ويب، ويمكن تخزين اسمه في cookie .
- في المرة القادمة المستخدم بزيارة صفحة، cookie "يتذكر" باسمه.
يتم حفظ ملفات تعريف الارتباط في أزواج اسم القيمة مثل:
username = John Doe
عندما طلب المتصفح صفحة ويب من ملقم، cookies يضاف ينتمون إلى صفحة على الطلب. بهذه الطريقة الخادم يحصل على البيانات اللازمة ل"تذكر" معلومات حول المستخدمين.
إنشاء a Cookie مع جافا سكريبت
جافا سكريبت يمكن أن تخلق، وقراءة، وحذف cookies مع document.cookie الممتلكات.
مع جافا سكريبت، a cookie يمكن إنشاء مثل هذا:
document.cookie = "username=John Doe";
يمكنك أيضا إضافة تاريخ انتهاء الصلاحية (في الوقت UTC). افتراضيا، the cookie يتم حذف عند إغلاق المتصفح:
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";
مع معلمة مسار، يمكن أن تخبر المتصفح ما مسار the cookie ينتمي إليها. افتراضيا، the cookie ينتمي إلى الصفحة الحالية.
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
قراءة a Cookie مع جافا سكريبت
مع جافا سكريبت، cookies يمكن قراءة مثل هذا:
var x = document.cookie;
document.cookie سيعود كل cookies في سلسلة واحدة يشبه إلى حد كبير: cookie1=value; cookie2=value; cookie3=value; cookie1=value; cookie2=value; cookie3=value;
تغيير a Cookie مع جافا سكريبت
مع جافا سكريبت، يمكنك تغيير a cookie بنفس الطريقة كما كنت إنشائه:
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
القديم cookie هو الكتابة.
حذف a Cookie مع جافا سكريبت
حذف a cookie بسيط جدا. مجرد مجموعة تنتهي المعلمة إلى تاريخ مر:
document.cookie = "username=; expires=Thu, 01
Jan 1970 00:00:00 UTC";
لاحظ أنه لم يكن لديك لتحديد a cookie قيمة عند حذف a cookie .
و Cookie سلسلة
و document.cookie الملكية يشبه السلسلة النصية العادية. ولكن الأمر ليس كذلك.
حتى لو أن تكتب كاملة cookie سلسلة ل document.cookie ، عند قراءته مرة أخرى، يمكنك فقط مشاهدة الزوج اسم القيمة منه.
إذا قمت بتعيين جديد cookie ، القديمة cookies لا الكتابة. الجديد cookie يضاف إلى document.cookie ، لذلك إذا كنت تقرأ document.cookie مرة أخرى سوف تحصل على شيء مثل:
cookie1 = value; cookie2 = value;
إذا كنت ترغب في العثور على قيمة محددة واحدة cookie ، يجب أن تكتب وظيفة جافا سكريبت الذي يبحث عن cookie القيمة في cookie السلسلة.
جافا سكريبت Cookie مثال
في المثال لمتابعة، سوف نقوم بإنشاء a cookie الذي يخزن اسم الزائر.
أول مرة يصل الزائر إلى صفحة الويب، وقال انه سوف يطلب منك ملء باسمه. ثم يتم تخزين اسم في a cookie .
في المرة القادمة يصل الزائر في نفس الصفحة، وقال انه سوف تحصل على رسالة ترحيب.
لالمثال فإننا سنضع 3 وظائف جافا سكريبت:
- وظيفة لتعيين cookie قيمة
- وثمة وظيفة للحصول على cookie قيمة
- وثمة وظيفة للتحقق من cookie قيمة
وظيفة لتعيين a Cookie
أولا، نحن إنشاء دالة الذي يقوم بتخزين اسم الزائر في a cookie متغير:
مثال
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var
expires = "expires="+ d.toUTCString();
document.cookie =
cname + "=" + cvalue + "; " + expires;
}
وأوضح سبيل المثال:
المعلمات من وظيفة هي فوق اسم cookie (cname) ، وقيمة the cookie (cvalue) ، وعدد الأيام حتى الكعكة يجب أن تنتهي (exdays).
الدالة تعيين a cookie عن طريق جمع cookiename ، the cookie قيمة، وتنتهي السلسلة.
وظيفة إلى الحصول a Cookie
ثم، فإننا نخلق دالة تقوم بإرجاع قيمة محددة cookie :
مثال
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0)=='
') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length,c.length);
}
}
return "";
}
وأوضحت وظيفة:
خذ the cookiename كمعلمة (CNAME).
إنشاء متغير (اسم) مع النص للبحث عن (CNAME + "=").
تقسيم document.cookie على المنقوطة في صفيف يسمى ca (ca = document.cookie.split(';')) .
حلقة من خلال كاليفورنيا array (i=0;i<ca.length;i++) ، وقرأ كل قيمة c=ca[i]) .
إذا the cookie تم العثور على (c.indexOf(name) == 0) ، إرجاع قيمة the cookie (c.substring(name.length,c.length) .
إذا the cookie لم يتم العثور على، والعودة "".
وظيفة لتحقق a Cookie
وأخيرا، ونحن إنشاء وظيفة أن checks إذا a cookie ومن المقرر.
إذا the cookie يتم تعيين سيعرض تحية.
إذا the cookie لم يتم تعيين، فإنه سيتم عرض مربع الفوري، ويسأل عن اسم المستخدم، ويقوم بتخزين اسم المستخدم cookie لمدة 365 يوما، عن طريق استدعاء setCookie وظيفة:
مثال
function checkCookie() {
var
username=getCookie("username");
if (username!="") {
alert("Welcome again " + username);
} else {
username = prompt("Please enter your name:", "");
if (username != ""
&& username != null) {
setCookie("username", username, 365);
}
}
}
كلنا معاالان
مثال
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue +
"; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca
= document.cookie.split(';');
for(var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt(0) == '
') {
c = c.substring(1);
}
if (c.indexOf(name)
== 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function
checkCookie() {
var user = getCookie("username");
if (user != "")
{
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" &&
user != null) {
setCookie("username", user, 365);
}
}
}
انها محاولة لنفسك » في المثال أعلاه يعمل على checkCookie() وظيفة عند تحميل الصفحة.