ForHosting KIT · أدوات المطورين

حساب الإزاحة والحد الأقصى وعدد الصفحات

حوّل الصفحة التي يختارها الزائر إلى القيم التي ينتظرها استعلام قاعدة البيانات: الصفحة 3 بخمسة وعشرين عنصرًا في الصفحة تبدأ عند الإزاحة 50، و123 عنصرًا تملأ 5 صفحات. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
الصفحة
3
حجم الصفحة
25
إجمالي العناصر
123
تحصل على
الإزاحة
50
النهاية
25
إجمالي الصفحات
5

حوّل رقم صفحة يبدأ من واحد إلى القيم الدقيقة التي يحتاج إليها استعلام يعتمد على الإزاحة. أدخل الصفحة المطلوبة، والحد الأقصى للسجلات في كل صفحة، وإجمالي العناصر المتاحة. تعيد الحاسبة إزاحة تبدأ من الصفر، وحد الاستعلام، والعدد الإجمالي للصفحات. كما ترفض رقم الصفحة أو حجمها إذا كان أقل من واحد، مما يساعد حضرتكم على منع استعلامات قاعدة البيانات غير الصالحة وعناصر التنقل غير المتسقة قبل وصولها إلى شيفرة التطبيق.

حوّل طلب الصفحة إلى معاملات للاستعلام

تصل هذه الحاسبة بين الطريقتين. أدخل رقم صفحة يبدأ من واحد، وحجم الصفحة، وإجمالي العناصر في المجموعة الكاملة. تُحسب الإزاحة بطرح واحد من رقم الصفحة ثم ضرب الناتج في حجم الصفحة، أما الحد فيساوي حجم الصفحة نفسه.

فعلى سبيل المثال، تبدأ الصفحة الثالثة من مجموعة تُعرض بواقع خمسة وعشرين عنصرًا في الصفحة بعد أول خمسين عنصرًا، ولذلك تكون إزاحتها خمسين وحدها خمسة وعشرين. يمكنكم تمرير هاتين القيمتين مباشرةً إلى عبارة SQL شائعة تستخدم LIMIT وOFFSET، أو ربطهما بمعاملات مكافئة في خدمة أخرى. النتيجة حتمية، ولا تفحص الحاسبة السجلات الفعلية ولا تجلبها.

فهي تنفذ فقط العملية الحسابية اللازمة لإعداد طلب مقسم إلى صفحات، ولذلك تفيد في الأنظمة الخلفية والبرامج النصية والاختبارات والتوثيق وجلسات تشخيص الأعطال.

افهم إجمالي الصفحات والحالات الحدية

يُحسب إجمالي الصفحات بقسمة العدد الكلي للعناصر على حجم الصفحة ثم تقريب الناتج إلى الأعلى. هذا التقريب مهم لأن الصفحة الأخيرة تظل صفحة حتى إن كانت ممتلئة جزئيًا. إذا عُرض مئة وعنصر واحد بمعدل خمسة وعشرين عنصرًا في الصفحة، فإن أربع صفحات تحتوي على مئة عنصر، وتحتوي صفحة خامسة على العنصر المتبقي.

عندما يكون إجمالي العناصر صفرًا، يكون إجمالي الصفحات صفرًا أيضًا لعدم وجود صفحة نتائج. لا تُقيد الصفحة المطلوبة تلقائيًا بهذا الإجمالي؛ ولذلك قد ينتج عن طلب الصفحة العاشرة إزاحة صحيحة حسابيًا حتى لو كانت المجموعة لا تتجاوز ثلاث صفحات. هذا السلوك مقصود، إذ تقدم الحاسبة العمليات الحسابية وتترك سياسة التطبيق لكم.

تحقق من المدخلات قبل إنشاء الاستعلام

فالقيمة الصفرية أو السالبة تخالف قاعدة بدء الصفحات من واحد أو تنشئ حدًا بلا معنى، ولهذا ينتج عنها خطأ إدخال غير صالح. يمنع التحقق من الأعداد الصحيحة الآمنة كذلك فقدان الدقة بصمت في JavaScript عند ضرب قيم كبيرة جدًا. إذا تجاوزت الإزاحة المحسوبة النطاق الآمن، يُرفض الطلب بدلًا من إرجاع رقم غير دقيق.

لا تجري القدرة أي طلب شبكي، ولا تخزن البيانات، ولا تستخدم قيمًا عشوائية أو مرتبطة بالوقت. المدخل نفسه يعطي دائمًا المخرج نفسه.

إنشاء استعلام لقاعدة البيانات

حوّل الصفحة المختارة في الواجهة إلى قيمتي LIMIT وOFFSET لاستخدامهما في استعلام SQL.

عرض عناصر التحكم في الصفحات

احسب إجمالي الصفحات اللازم لتمكين عناصر التنقل أو تعطيلها أو وضع تسميات لها.

كيف أحسب الإزاحة لصفحة معينة؟

اطرح واحدًا من رقم الصفحة واضربه في حجم الصفحة. الصفحة الثالثة التي تضم 25 عنصرًا تتخطى أول 50 سجلًا، فتكون إزاحتها 50 وحدّها 25.

كيف يُحسب إجمالي عدد الصفحات؟

يُقسم إجمالي العناصر على حجم الصفحة ويُقرَّب إلى الأعلى، لأن الصفحة الأخيرة الممتلئة جزئيًا تُعد صفحة أيضًا. مع 123 عنصرًا بواقع 25 في الصفحة تحصل على 5 صفحات، والمجموعة الفارغة تعطي 0.

ماذا يحدث إذا طُلبت صفحة بعد الصفحة الأخيرة؟

تحصل مع ذلك على إزاحة صالحة، لأن الصفحة المطلوبة لا تُقلَّص إلى الإجمالي. تُحسب الصفحة 10 من قائمة من ثلاث صفحات بشكل عادي، ويقرر تطبيقك هل يعرض نتيجة فارغة أم ينتقل إلى الصفحة الأخيرة.

لماذا تبدأ الصفحات من واحد والإزاحة من الصفر؟

يعدّ الناس الصفحات بدءًا من واحد، بينما تعدّ قاعدة البيانات السجلات التي تتخطاها بدءًا من الصفر. لذلك تكون إزاحة الصفحة الأولى 0، ويُرفض رقم الصفحة أو حجمها إذا كان أقل من واحد.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/pagination-offset-calc

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/pagination-offset-calc \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":3,"page_size":25,"total_items":123}'
{
  "page": 3,
  "page_size": 25,
  "total_items": 123
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.pagination_offset_calc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

حوّل طلب الصفحة إلى معاملات للاستعلام

تعرض واجهات المستخدم ترقيم الصفحات عادةً بأرقام مفهومة للبشر، بينما تتطلب قواعد البيانات وواجهات API غالبًا إزاحة تبدأ من الصفر وحدًا أقصى.

افهم إجمالي الصفحات والحالات الحدية

يمكن لتطبيقكم مقارنة الصفحة المطلوبة مع total_pages، ثم إعادة نتيجة فارغة، أو التوجيه إلى الصفحة الأخيرة، أو عرض استجابة تفيد بعدم العثور. إن فصل الحساب عن سياسة المعالجة يجعل المخرجات متوقعة في قواعد البيانات وخدمات REST وواجهات المستخدم.

تحقق من المدخلات قبل إنشاء الاستعلام

يجب أن تكون قيمتا page وpage_size عددين صحيحين آمنين لا تقلان عن واحد. ويجب أن تكون total_items عددًا صحيحًا آمنًا لا يقل عن صفر، لأن المجموعة لا يمكن أن تحتوي على عدد سالب أو كسري من السجلات. تفيد هذه القواعد خارج الحاسبة أيضًا؛ فتطبيق التحقق نفسه عند حدود API يمنع وصول المعاملات المشوهة إلى موصل قاعدة البيانات. تبلغ تكلفة كل طلب آلي عبر API مقدار $0.002، ويمكنكم استخدام المتصفح للتحقق من الأمثلة أثناء تصميم منطق ترقيم الصفحات أو معالجة مشكلاته.

اختبار الحالات الحدية في API

أنشئ القيم المتوقعة للمجموعات الفارغة والصفحات الأخيرة الجزئية والصفحات التي تتجاوز النتائج.

هل يبدأ رقم الصفحة من الصفر أم من الواحد؟

يبدأ من الواحد: الإزاحة في الصفحة 1 هي 0، وتبدأ الصفحة 2 بعد مقدار page_size كامل.

كيف تُحسب total_pages؟

تقسم الحاسبة total_items على page_size ثم تقرب الناتج إلى الأعلى لاحتساب الصفحة الأخيرة الجزئية.

ماذا يحدث عندما تكون total_items صفرًا؟

تكون total_pages مساوية لـ 0، بينما يستمر حساب offset وlimit من الصفحة والحجم المطلوبين.

هل يمكن طلب صفحة تأتي بعد total_pages؟

نعم. تعيد الحاسبة الإزاحة الحسابية، ويقرر تطبيقكم عرض نتيجة فارغة أو رفض الصفحة.

ما تكلفة طلب API؟

تبلغ تكلفة كل طلب API مقدار $0.002. وتتوفر الحاسبة كذلك في المتصفح.

اطّلع على توثيق KIT الكامل ←