المعاملات وCRUD
أضيفوا السجلات واقرؤوها وحدّثوها واحذفوها.
المعاملات وCRUD درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
كل شيء معاملة
في IndexedDB، تحدث جميع عمليات القراءة والكتابة داخل معاملة. تجمع المعاملة العمليات بحيث تنجح كلها أو تُلغى كلها، مما يحافظ على اتساق البيانات.
بدء معاملة
أنشئوا معاملة باستخدام db.transaction(storeNames, mode). ويكون الوضع 'readonly' (الافتراضي) أو 'readwrite' لإجراء التعديلات.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');الحصول على مخزن الكائنات
من المعاملة، احصلوا على مخزن الكائنات الذي تريدون العمل معه عبر tx.objectStore(name). توجد جميع أساليب CRUD على هذا المخزن.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');
// store.add / get / put / deleteإضافة السجلات
يُدرج store.add(value) سجلًا جديدًا. ويفشل إذا كان هناك سجل بالمفتاح نفسه، مما يحمي من الاستبدال غير المقصود.
const store = tx.objectStore('notes');
const req = store.add({ id: 1, text: 'Buy milk' });
req.onsuccess = () => console.log('added with key', req.result);قراءة سجل
يسترجع store.get(key) سجلًا واحدًا باستخدام مفتاحه. وتصل النتيجة إلى onsuccess الخاص بالطلب على هيئة request.result (وتكون undefined إذا لم يُعثر على السجل).
const req = store.get(1);
req.onsuccess = () => {
console.log('record:', req.result);
};التحديث باستخدام put
يُدرج store.put(value) سجلًا أو يستبدله. وعلى خلاف add، يستبدل سجلًا موجودًا بالمفتاح نفسه، مما يجعله مناسبًا للتحديثات.
store.put({ id: 1, text: 'Buy milk and eggs' });
// Replaces the existing record with id 1.حذف سجل
يزيل store.delete(key) السجل الذي يحمل المفتاح المحدد. وينجح حتى إذا لم يوجد سجل بهذا المفتاح.
const req = store.delete(1);
req.onsuccess = () => console.log('deleted');إفراغ مخزن
يزيل store.clear() جميع السجلات في مخزن الكائنات دفعة واحدة. استخدموه لإعادة ضبط البيانات المخزنة مؤقتًا.
store.clear();
// All records in 'notes' are removed.اكتمال المعاملة
يطلق كائن المعاملة نفسه oncomplete عند تنفيذ جميع عملياته، ويطلق onerror أو onabort عند حدوث خلل. استخدموا oncomplete لمعرفة أن عمليات الكتابة أصبحت محفوظة بشكل دائم.
tx.oncomplete = () => console.log('all changes saved');
tx.onerror = () => console.log('transaction failed');سلوك الإتمام التلقائي
تُتم المعاملات تلقائيًا عندما تعود السيطرة إلى حلقة الأحداث ولا تكون هناك طلبات معلّقة. لا يمكنكم إبقاء معاملة مفتوحة أثناء تنفيذ await لعمل غير متزامن unrelated؛ نفّذوا جميع عمليات المخزن معًا.
// Queue operations synchronously within the same tx:
store.add({ id: 2, text: 'A' });
store.add({ id: 3, text: 'B' });
// Both commit together when tx completes.ملخص عمليات CRUD
تتطابق العمليات الأساسية الأربع بوضوح:
- الإنشاء:
add - القراءة:
get - التحديث:
put - الحذف:
delete
تُنفَّذ جميعها داخل معاملة تضمن الاتساق.
اختبار سريع
اختبروا مدى فهمكم للمعاملات وعمليات CRUD.
مراجعة
لقد تعلمتم المعاملات وعمليات CRUD:
- ابدؤوا باستخدام
db.transaction(store, mode). - احصلوا على مخزن البيانات باستخدام
tx.objectStore(name). - تُدرج
addالبيانات، وتقرأgetالبيانات، وتُجريputعملية الإدراج أو التحديث، وتحذفdeleteالبيانات. - تصل النتائج من خلال
onsuccessلكل طلب. - يؤكد
tx.oncompleteحفظ التغييرات.
التالي: الفهارس والاستعلامات.
الأسئلة الشائعة
هل درس «المعاملات وCRUD» مجاني؟
نعم — نص درس «المعاملات وCRUD» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «المعاملات وCRUD»؟
أضيفوا السجلات واقرؤوها وحدّثوها واحذفوها. تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «المعاملات وCRUD»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.