تجویز بی وقفه

ساخت وبلاگ

رابط IDBTransaction از API IndexedDB یک معامله استاتیک و ناهمزمان در یک پایگاه داده با استفاده از ویژگی های Handler Event ارائه می دهد. تمام خواندن و نوشتن داده ها در معاملات انجام می شود. شما از IDBDatabase برای شروع معاملات ، IDBTransaction برای تنظیم حالت معامله استفاده می کنید (به عنوان مثال آیا این Readonly یا ReadWrite است) ، و برای ایجاد درخواست به یک IDBobjectStore دسترسی پیدا می کنید. همچنین می توانید از یک شیء Idbtransaction برای سقط معاملات استفاده کنید.

توجه: این ویژگی در کارگران وب موجود است

معاملات با ایجاد معامله آغاز می شود ، نه وقتی که اولین درخواست قرار می گیرد. به عنوان مثال این را در نظر بگیرید:

پس از اجرای کد ، فروشگاه شی باید حاوی مقدار "2" باشد ، زیرا Trans2 باید بعد از Trans1 اجرا شود.

خرابی معامله

معاملات به دلایل ثابت می توانند شکست بخورند ، همه اینها (به جز تصادف عامل کاربر) باعث ایجاد پاسخ به تماس می شوند:

  • سقط به دلیل درخواست های بد ، به عنوان مثالتلاش برای اضافه کردن () همان کلید دو بار ، یا قرار دادن () با همان کلید شاخص با محدودیت منحصر به فرد. این باعث خطایی در درخواست می شود ، که می تواند با خطایی در معامله ، که معامله را کاهش می دهد ، حباب کند. این امر را می توان با استفاده از PongessDefault () در مورد خطا در صورت درخواست پیشگیری کرد.
  • یک تماس صریح () از اسکریپت.
  • یک استثناء غیر آموخته در کنترل موفقیت / خطای درخواست.
  • یک خطای I/O (به عنوان مثال عدم موفقیت واقعی نوشتن روی دیسک یا سایر خرابی سیستم عامل/سخت افزار).
  • سهمیه فراتر رفت.
  • تصادف عامل کاربر.

تضمین دوام فایرفاکس

توجه داشته باشید که از Firefox 40 ، معاملات IndexedDB ضمانت دوام را برای افزایش عملکرد آرام کرده است (به اشکال 1112702 مراجعه کنید.) که قبلاً در یک معامله ReadWrite بود ، یک رویداد کامل فقط در صورت تضمین تمام داده ها به دیسک شلیک شد. در Firefox 40+ این رویداد کامل پس از آنکه به سیستم عامل گفته شد داده ها را می نویسد ، اما به طور بالقوه قبل از اینکه داده ها در واقع به دیسک شستشو داده شود ، اخراج می شود. بنابراین ممکن است این رویداد کامل سریعتر از گذشته تحویل داده شود ، با این حال ، این احتمال کوچک وجود دارد که اگر سیستم عامل خراب شود یا قبل از اینکه داده ها به دیسک شسته شود ، کل معامله از بین برود. از آنجا که چنین حوادث فاجعه بار نادر است ، بیشتر مصرف کنندگان نیازی به نگرانی بیشتر خود ندارند.

اگر باید به دلایلی از دوام اطمینان حاصل کنید (به عنوان مثال ، داده های مهمی را که بعداً قابل استفاده مجدد نیست) ذخیره می کنید) می توانید قبل از ارائه یک معامله با استفاده از حالت آزمایشی (غیر استاندارد) ReadWriteFlush ، یک معامله را به سمت دیسک بچرخانید.(به idbdatabase. transaction مراجعه کنید.

خصوصیات نمونه

اتصال بانک اطلاعاتی که این معامله با آن در ارتباط است.

نکته دوام را بازگرداند که معامله با آن ایجاد شده است.

یک Domexception را نشان می دهد که نشان دهنده نوع خطایی است که هنگام معامله ناموفق رخ داده است. اگر معامله به پایان نرسد ، این ویژگی تهی است ، یا با موفقیت انجام شده است ، یا با عملکرد idbtransaction. abort () سقط شده است.

حالت برای جداسازی دسترسی به داده ها در فروشگاه های شیء که در محدوده معامله قرار دارند. مقدار پیش فرض Readonly است.

لیست Domstringlist از نام اشیاء IDBoBjectStore مرتبط با معامله را برمی گرداند.

روشهای نمونه

تمام تغییرات در اشیاء موجود در پایگاه داده مرتبط با این معامله را به عقب می اندازد. اگر این معامله سقط شده یا تکمیل شده باشد ، این روش یک رویداد خطا را آتش می زند.

یک شی idbobjectstore را نشان می دهد که یک فروشگاه شیء را نشان می دهد که بخشی از دامنه این معامله است.

برای یک معامله فعال ، معامله را مرتکب می شود. توجه داشته باشید که این امر معمولاً لازم نیست که فراخوانی شود - هنگامی که تمام درخواست های برجسته برآورده شده و هیچ درخواست جدیدی انجام نشده است ، معامله به طور خودکار انجام می شود. از Comment () می توان برای شروع فرآیند تعهد استفاده کرد بدون اینکه منتظر بمانید تا از درخواست های برجسته اعزام شوند.

مناسبت ها

با استفاده از AddEventListener () یا با اختصاص شنونده رویداد به ویژگی OneventName این رابط ، به این رویدادها گوش دهید.

هنگامی که معامله IndexedDB سقط شد ، یک رویداد اخراج شد. همچنین از طریق ویژگی OnAbort در دسترس است. این رویداد به IDBDatabase حباب می کند.

هنگامی که معامله با موفقیت انجام شد ، یک رویداد اخراج شد. همچنین از طریق ویژگی OnComplete در دسترس است.

هنگامی که یک درخواست خطایی را برمی گرداند و رویداد را به شیء اتصال (IDBDATABASE) باز می گرداند ، یک رویداد اخراج شد. همچنین از طریق ویژگی OnError در دسترس است.

ثابت

مستهلک: این ویژگی دیگر توصیه نمی شود. اگرچه برخی از مرورگرها هنوز هم از آن پشتیبانی می کنند ، اما ممکن است قبلاً از استانداردهای وب مربوطه حذف شده باشد ، ممکن است در حال کاهش باشد ، یا ممکن است فقط برای اهداف سازگاری نگهداری شود. از استفاده از آن خودداری کنید و در صورت امکان کد موجود را به روز کنید. برای راهنمایی تصمیم خود ، جدول سازگاری را در پایین این صفحه مشاهده کنید. توجه داشته باشید که این ویژگی ممکن است در هر زمان متوقف شود.

هشدار: این ثابت ها دیگر در دسترس نیستند - آنها در Gecko 25 حذف شدند. به جای آن باید از ثابت های رشته استفاده کنید.(اشکال 888598)

معاملات می توانند یکی از سه حالت را داشته باشند:

اجازه می دهد تا داده ها خوانده شوند اما تغییر نکرده اند.

حتی اگر این ثابت ها اکنون مستهلک شوند ، شما هنوز هم می توانید در صورت لزوم از آنها استفاده کنید تا سازگاری به عقب را فراهم کنید (در کروم تغییر در نسخه 21 انجام شد). در صورت وجود شیء دیگر باید به صورت دفاعی کد کنید:

مثال ها

در قطعه کد زیر ، ما یک معامله خواندن/نوشتن را در پایگاه داده خود باز می کنیم و برخی از داده ها را به یک فروشگاه شی اضافه می کنیم. توجه داشته باشید همچنین توابع متصل به دستگیرندگان رویداد معامله برای گزارش در مورد نتیجه افتتاح معامله در صورت موفقیت یا عدم موفقیت. برای یک مثال کامل ، برنامه اعلان های کارها را مشاهده کنید (مثال زنده را مشاهده کنید).

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : ژیلا توفیقی بازدید : 69 تاريخ : سه شنبه 8 فروردين 1402 ساعت: 22:39