65 lines
4.1 KiB
Markdown
65 lines
4.1 KiB
Markdown
---
|
||
title: Manipulating Cookies
|
||
localeTitle: التلاعب الكوكيز
|
||
---
|
||
## التلاعب الكوكيز
|
||
|
||
يعد الحصول على ملفات تعريف الارتباط أو إعدادها عملية مباشرة يمكن تحقيقها عن طريق الوصول إلى خاصية ملفات تعريف الارتباط في كائن مستند المستعرض.
|
||
|
||
تجد موقعًا وصفة مدهشة وغنية بالمعلومات لطهي وجبة أجنبية لضيوفك ولكنها باللغة الأجنبية ، ولحسن الحظ يمكنك تغيير اللغة على الموقع الإلكتروني للموقع باستخدام قائمة اختيار منسدلة. بعد يومين ، تزور الموقع نفسه مرة أخرى لعمل طبق لأمك ، لكنك الآن ترى موقع الويب بلغتك الأصلية بشكل افتراضي.
|
||
|
||
_يتذكر موقع الويب اللغة التي حددتها في زيارتك الأخيرة ويخزنها في صورة **ملف تعريف ارتباط** . الآن اخترت تلقائيا لغتك المفضلة عن طريق قراءة ملف تعريف الارتباط هذا._
|
||
|
||
`userLanguage:french`
|
||
|
||
يتم استخدام ملفات تعريف الارتباط لتخزين البيانات في شكل `name:value` زوج `name:value` على جانب العميل. وهو يسمح لمستخدم معين بتخزين معلومات محددة على موقع الويب على المتصفح لاستخدامها لاحقًا. يمكن أن تكون المعلومات المخزنة `sessionID` ، `userCountry` ، `visitorLanguage` وما إلى ذلك.
|
||
|
||
طريقة أخرى لتخزين البيانات على جانب العميل هي `localstorage` .
|
||
|
||
### تعيين ملف تعريف الارتباط
|
||
|
||
يمكن تعيين ملف تعريف ارتباط باستخدام البنية أدناه ، ولكن ينصح بشدة بمكتبة ، مثل المكتبة المذكورة في النهاية ، لجعل التطوير أكثر سهولة على الجميع. أثناء تعيين ملف تعريف الارتباط ، يمكنك تعيين انتهاء الصلاحية له أيضًا. إذا تم تخطي ملف تعريف الارتباط ، فسيتم مسحه عند إغلاق المتصفح.
|
||
|
||
**ضع في اعتبارك أن ملف تعريف الارتباط الذي تم تعيينه بواسطة نطاق معين لا يمكن قراءته إلا من خلال ذلك النطاق والنطاقات الفرعية فقط.**
|
||
|
||
`// Using vanilla javascript
|
||
document.cookie = 'userLanguage=french; expires=Sun, 2 Dec 2017 23:56:11 UTC; path=/';
|
||
|
||
//Using JS cookie library
|
||
Cookies.set('userLanguage', 'french', { expires: 7, path: '/' });
|
||
`
|
||
|
||
_تنتهي صلاحية ملف تعريف الارتباط في 7 أيام_
|
||
|
||
### احصل على ملفات تعريف الارتباط
|
||
|
||
`// Using vanilla javascript
|
||
console.log(document.cookie)
|
||
|
||
// => "_ga=GA1.2.1266762736.1473341790; userLanguage=french"
|
||
|
||
// Using JS cookie library
|
||
Cookies.get('userLanguage');
|
||
|
||
// => "french"
|
||
`
|
||
|
||
### حذف ملف تعريف الارتباط
|
||
|
||
لحذف ملف تعريف ارتباط ، يتم تعيين تاريخ انتهاء الصلاحية إلى شيء ما في الماضي.
|
||
|
||
`// Using vanilla javascript
|
||
document.cookie = 'userLanguage; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/';
|
||
|
||
//Using JS cookie library
|
||
Cookies.remove('userLanguage');
|
||
`
|
||
|
||
_إذا وجدت نفسك تتعامل مع ملفات تعريف الارتباط كثيرًا في مشروعك ، فالرجاء استخدام مكتبة مثل [JS Cookie](https://github.com/js-cookie/js-cookie) وحفظ وقتًا كبيرًا من الوقت._
|
||
|
||
#### معلومات اكثر:
|
||
|
||
* [وأوضح كوكي](https://www.quirksmode.org/js/cookies.html)
|
||
* [دليل MDN كوكي](https://developer.mozilla.org/en-US/docs/Web/API/document/cookie)
|
||
* [Udacity كوكي فيديو](https://www.youtube.com/watch?v=xdH9zsW1CK0)
|
||
* [ملفات تعريف الارتباط HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies) |