مشاهده در GitHub

Bootstrap Table Pipeline

افزونه Pipeline برای Bootstrap Table.

در این صفحه

این پلاگین کش‌گذاری داده‌های سمت کلاینت را برای درخواست‌های سمت سرور فعال می‌کند، که نیاز به ارسال درخواست جدید در هر تغییر صفحه را از بین می‌برد. این امکان تعادل عملکرد برای مجموعه داده‌های بزرگ را بین بازگشت تمام داده‌ها یک‌جا (صفحه‌بندی سمت کلاینت) و درخواست جدید سمت سرور (صفحه‌بندی سمت سرور) فراهم می‌کند.

دو گزینه جدید وجود دارد:

  • usePipeline: این ویژگی را فعال می‌کند
  • pipelineSize: اندازه هر پنجره کش

اندازه پایپلاین باید به طور یکنواخت بر اندازه صفحه فعلی تقسیم شود. این با گرد کردن به نزدیک‌ترین مقدار تقسیم شده یکنواخت اطمینان می‌آورد. به عنوان مثال، اگر اندازه پایپلاین 4990 باشد و اندازه صفحه فعلی 25 باشد، اندازه پایپلاین به صورت پویا روی 5000 تنظیم خواهد شد.

پنجره‌های کش بر اساس اندازه پایپلاین و تعداد کل ردیف‌های بازگشتی توسط کوئری سمت سرور محاسبه می‌شوند. به عنوان مثال، با اندازه پایپلاین 500 و کل ردیف‌های 1300، پنجره‌های کش به صورت زیر خواهد بود:

[
  {
    "lower": 0,
    "upper": 499
  },
  {
    "lower": 500,
    "upper": 999
  },
  {
    "lower": 1000,
    "upper": 1499
  }
]

با استفاده از پارامترهای limit (یعنی pipelineSize) و offset، درخواست سمت سرور باید فقط داده‌های در پنجره کش درخواست شده و همچنین تعداد کل ردیف‌ها را بازگرداند. به این معنی که کد سمت سرور باید از پارامترهای offset و limit برای آماده‌سازی داده‌های پاسخ استفاده کند.

در تغییر صفحه، offset جدید بررسی می‌شود که آیا در پنجره کش فعلی است یا خیر. اگر بله، داده‌های صفحه درخواست شده از مجموعه داده‌های کش شده بازگردانده می‌شود. در غیر این صورت، یک درخواست جدید سمت سرور برای پنجره کش جدید ارسال خواهد شد.

داده‌های کش شده فعلی فقط در این رویدادها غیرمعتبر می‌شوند:

  • مرتب‌سازی
  • جستجو
  • تغییر اندازه صفحه
  • تغییر صفحه به پنجره کش جدید

دو رویداد جدید وجود دارد:

  • cached-data-hit.bs.table: وقتی داده‌های کش شده در تغییر صفحه استفاده می‌شوند، منتشر می‌شود
  • cached-data-reset.bs.table: وقتی داده‌های کش شده غیرمعتبر می‌شوند و درخواست جدید سمت سرور ارسال می‌شود، منتشر می‌شود

استفاده

<script src="extensions/pipeline/bootstrap-table-pipeline.js"></script>

مثال

Pipeline

گزینه‌ها

pipelineSize

  • ویژگی: data-pipeline-size

  • نوع: Number

  • جزئیات:

    اندازه هر پنجره کش. باید بزرگتر از 0 باشد.

  • پیش‌فرض: 1000

usePipeline

  • ویژگی: data-use-pipeline

  • نوع: Boolean

  • جزئیات:

    برای فعال کردن پایپلاین، روی true تنظیم کنید.

  • پیش‌فرض: false

رویدادها

onCachedDataHit (cached-data-hit.bs.table)

  • پارامتر: undefined

  • جزئیات:

    وقتی صفحه‌بندی می‌تواند از داده‌های کش شده محلی استفاده کند، فعال می‌شود.

onCachedDataReset (cached-data-reset.bs.table)

  • پارامتر: undefined

  • جزئیات:

    وقتی داده‌های کش شده محلی نیاز به تنظیم مجدد دارند (یعنی در زمان مرتب‌سازی، جستجو، تغییر اندازه صفحه یا خروج از پنجره کش فعلی)، فعال می‌شود.