jakearchibald/idb

ساخت وبلاگ

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

نام در حال استفاده

یک برچسب در حال حاضر با نام شاخه ارائه شده وجود دارد. بسیاری از دستورات GIT نام برچسب و شاخه را می پذیرند ، بنابراین ایجاد این شاخه ممکن است باعث رفتار غیر منتظره شود. آیا مطمئن هستید که می خواهید این شاخه را ایجاد کنید؟

  • محلی
  • مکاشه

با استفاده از URL وب از Git یا Checkout با SVN استفاده کنید.

با CLI رسمی ما سریع کار کنید. بیشتر بدانید.

ورود به سیستم لازم

لطفاً برای استفاده از برنامه های کد وارد سیستم شوید.

راه اندازی دسک تاپ GitHub

اگر هیچ اتفاقی نمی افتد ، GitHub Desktop را بارگیری کنید و دوباره امتحان کنید.

راه اندازی دسک تاپ GitHub

اگر هیچ اتفاقی نمی افتد ، GitHub Desktop را بارگیری کنید و دوباره امتحان کنید.

راه اندازی Xcode

اگر هیچ اتفاقی نمی افتد ، Xcode را بارگیری کنید و دوباره امتحان کنید.

راه اندازی کد ویژوال استودیو

فضای کد شما یک بار آماده خواهد شد.

مشکلی برای تهیه فضای کدگذاری شما وجود داشت ، لطفاً دوباره امتحان کنید.

آخرین تعهد

آمار git

فایل ها

بارگیری آخرین اطلاعات متعهد انجام نشد.

readme. md

IndexedDB با قابلیت استفاده.

این یک ریز است (~کتابخانه 1. 06kB Brotli'd) که بیشتر آینه API IndexedDB را نشان می دهد ، اما با پیشرفت های اندک که تفاوت زیادی در قابلیت استفاده ایجاد می کند.

سپس با فرض اینکه از یک سیستم سازگار با ماژول استفاده می کنید (مانند صفحه وب ، رولپ و غیره):

به طور مستقیم در یک مرورگر

با استفاده از روش ماژول ها به طور مستقیم از طریق JSDELIVR:

با استفاده از مرجع اسکریپت خارجی

جهانی ، IDB ، ایجاد می شود که شامل تمام صادرات نسخه ماژول است.

این کتابخانه مرورگرهای مدرن را مانند Chrome ، Firefox ، Safari و سایر مرورگرها که از آن موتورها استفاده می کنند ، مانند Edge ، هدف قرار می دهد. IE پشتیبانی نمی شود.

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

این روش یک پایگاه داده را باز می کند و وعده ای را برای یک IDBDatabase پیشرفته باز می گرداند.

  • نام: نام پایگاه داده.
  • نسخه (اختیاری): نسخه طرحواره یا تعریف نشده برای باز کردن نسخه فعلی.
  • ارتقاء (اختیاری): اگر این نسخه از پایگاه داده قبلاً هرگز باز نشده باشد ، نامیده می شود. از آن برای مشخص کردن طرحواره برای پایگاه داده استفاده کنید. این شبیه به رویداد ارتقا یافته در Plain IndexedDB است.
    • DB: یک IDBDatabase پیشرفته.
    • OldVersion: آخرین نسخه پایگاه داده توسط کاربر باز شده است.
    • NewVersion: هر نسخه جدیدی را که ارائه کرده اید.
    • معامله: یک معامله پیشرفته برای این بروزرسانی. این امر در صورت نیاز به دریافت داده از سایر فروشگاه ها به عنوان بخشی از مهاجرت مفید است.
    • رویداد: شیء رویداد برای رویداد ارتقا یافته مرتبط.
    • فعلی: نسخه پایگاه داده ای که این یکی را مسدود می کند.
    • BlockedVersion: نسخه پایگاه داده مسدود شده است (هر نسخه ای که به OPENDB ارائه داده اید).
    • رویداد: شیء رویداد برای رویداد مسدود شده مرتبط.
    • فعلی: نسخه پایگاه داده باز (هر نسخه ای که به OPENDB ارائه داده اید).
    • BlockedVersion: نسخه پایگاه داده ای که مسدود شده است.
    • رویداد: شیء رویداد برای رویداد نسخه مرتبط.

    یک پایگاه داده را حذف می کند.

    • نام: نام پایگاه داده.
    • مسدود شده (اختیاری): اگر پایگاه داده از قبل وجود داشته باشد و اتصالات باز وجود داشته باشد که در پاسخ به یک رویداد نسخه ای بسته نمی شوند ، درخواست تا بسته شدن آنها مسدود می شود.
      • فعلی: نسخه پایگاه داده ای که مانع عملکرد حذف می شود.
      • رویداد: شیء رویداد برای رویداد "نسخه" مرتبط.

      یک شیء indexedDB پیشرفته را می گیرد و یک ساده اصلاح نشده را برمی گرداند.

      این مفید است اگر به دلایلی می خواهید به Plain IndexedDB برگردید. وعده ها همچنین به اشیاء Idbrequest تبدیل می شوند.

      یک شیء IDB را می گیرد و نسخه ای را که توسط این کتابخانه تقویت شده است ، برمی گرداند.

      این مفید است اگر برخی از کد های شخص ثالث به شما یک شیء IDBDatabase بدهد و می خواهید ویژگی های این کتابخانه را داشته باشد.

      این به دلیل ابتدایی از دست رفته ، با Idbcursor کار نمی کند. همچنین ، اگر یک idbtransaction را بپیچید ، tx. store و tx. objectstorenames در لبه کار نمی کنند. برای جلوگیری از این مسائل ، شیء IDBDatabase را بپیچید و از شیء بسته بندی شده برای ایجاد معامله جدید استفاده کنید.

      پس از باز کردن بانک اطلاعاتی ، API همانند IndexedDB است ، به جز چند تغییر برای آسانتر کردن کارها.

      در مرحله اول ، هر روشی که معمولاً یک شیء idbrequest را برمی گرداند ، اکنون وعده ای را برای نتیجه باز می گرداند.

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

      در نتیجه ، روش هایی مانند Store. put ممکن است به جای بازگشت یک وعده ، پرتاب کنند.

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

      tl ؛ dr: منتظر چیزهای دیگر بین شروع و پایان معامله خود نیستید ، در غیر این صورت معامله قبل از انجام کار بسته می شود.

      در صورت عدم پردازش ریزگردها ، یک معامله IDB به طور خودکار بسته می شود. در نتیجه ، این خوب کار می کند:

      اما این چنین نیست:

      در این حالت ، معامله بسته می شود در حالی که مرورگر در حال واگذاری است ، بنابراین Store. put شکست می خورد.

      میانبرهایی برای دریافت/تنظیم از یک فروشگاه شیء

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

      میانبرها عبارتند از: Get ، GetKey ، GetAll ، GetAllKeys ، Count ، Put ، Add ، Delete و Clear. هر روش یک آرگومان StoreName را می گیرد ، نام فروشگاه شیء و بقیه آرگومان ها همان روش IDBoBjectStore معادل هستند.

      میانبرها برای دریافت از یک فهرست

      میانبرها عبارتند از: getFromIndex ، getKeyFromIndex ، getAllFromIndex ، getAllKeysFromIndex و countfromindex.

      هر روش آرگومان های storename و indexname را انجام می دهد ، و به دنبال آن بقیه آرگومان ها از روش معادل IDBindex.

      اگر معامله شامل یک فروشگاه واحد باشد ، ملک فروشگاه به آن فروشگاه مراجعه می کند.

      اگر معامله ای شامل چندین فروشگاه باشد ، tx. store تعریف نشده است ، برای دریافت فروشگاه ها باید از tx. objectstore (storename) استفاده کنید.

      معاملات دارای یک وعده . done است که با انجام موفقیت آمیز معامله حل می شود و در غیر این صورت با خطای معامله رد می شود.

      اگر به پایگاه داده می نویسید ، tx. done این سیگنال است که همه چیز با موفقیت به پایگاه داده متعهد شده است. با این حال ، در انتظار عملیات فردی هنوز هم مفید است ، زیرا خطایی را مشاهده می کنید که باعث شکست معامله شده است.

      روشهای پیش رو (پیشروی ، ادامه ، ادامه کار) وعده ای را برای مکان نما ، یا در صورت عدم ارائه مقادیر دیگر برای ارائه ، بازگردانید.

      پشتیبانی async iterator به طور پیش فرض گنجانده نشده است (Edge از آنها پشتیبانی نمی کند). برای درج آنها ، واردات IDB/با async-ittr به جای IDB (این اندازه کتابخانه را به آن افزایش می دهد~1. 29kb Brotli'd):

      یا https://cdn. jsdelivr.net/npm/idb@7/build/umd-with-async-ittr. js اگر از نسخه غیر مودول استفاده می کنید.

      اکنون می توانید بیش از فروشگاه ها ، فهرست ها و مکان نما ها تکرار کنید:

      هر شیء بازده یک idbcursor است. شما می توانید به صورت اختیاری از روش های پیشرفته برای پرش از موارد استفاده کنید (در یک تکرار Async که آنها باطل هستند):

      اگر به صورت دستی مکان نما را پیش نبرید ، cursor. continue () برای شما فراخوانی می شود.

      فروشگاه ها و شاخص ها همچنین دارای یک روش تکرار شونده هستند که دارای امضای مشابه OpenCursor هستند ، اما یک تکرار کننده Async را برمی گرداند:

      این بسیار شبیه به LocalStorage است ، اما Async. اگر این تنها چیزی است که شما نیاز دارید ، ممکن است به idb-keyval علاقه داشته باشید. همیشه می توانید بعداً به این کتابخانه ارتقا دهید.

      این کتابخانه کاملاً تایپ شده است ، و شما می توانید با ارائه انواع پایگاه داده خود ، موارد را بهبود بخشید:

      برای تعریف انواع پایگاه داده خود ، DBSchema را با رابط کاربری که کلیدها نام فروشگاه های شیء شما هستند ، گسترش دهید.

      برای هر مقدار ، یک شیء را فراهم کنید که مقدار آن نوع مقادیر موجود در فروشگاه باشد و کلید نوع کلیدهای موجود در فروشگاه است.

      به صورت اختیاری ، ایندکس ها می توانند شامل نقشه ای از نام های فهرست باشند ، به نوع کلید موجود در آن فهرست.

      هنگام تماس با OPENDB ، این رابط را ارائه دهید و از آن پس پایگاه داده شما به شدت تایپ می شود. این همچنین به IDE شما اجازه می دهد تا نام فروشگاه ها و فهرست ها را به صورت خودکار به صورت خودکار انجام دهد.

      انتخاب از انواع

      اگر بدون ارائه انواع با OpenDB تماس بگیرید ، پایگاه داده شما از انواع اساسی استفاده می کند. با این حال ، گاهی اوقات شما باید با فروشگاه هایی که در طرح شما نیستند ، تعامل داشته باشید. در این صورت می توانید بازیگران کنید.

      بیایید بگوییم که ما در حال تغییر نام فروشگاه "Number-Number" به "nums fave" بودیم:

      همچنین می توانید با حذف نوع ، به عنوان مثال DB به عنوان idbpdatabase ، به یک پایگاه داده بی علامت ریخته شوید.

      توجه: انواع مانند idbpdatabase فقط توسط TypeScript استفاده می شود. این اجرای از پروکسی های زیر هود استفاده می کند.

      این همچنین تست نوع را انجام می دهد.

      برای آزمایش ، حرکت به ساخت/ تست/ در یک مرورگر. برای این کار باید یک سرور وب اساسی تنظیم کنید.

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

برچسب : نویسنده : ملیکا زارعی بازدید : 37 تاريخ : پنجشنبه 14 ارديبهشت 1402 ساعت: 15:45