سؤال

أريد أن عرض قائمة من كافة المستخدمين في الموقع الخاص بي ولكن أريد فقط أن عرض 10 أشخاص في العمر.أنا لا أعرف بالضبط كيف نفعل هذا.أنا أعرف كيف نفعل ذلك فقط عن طريق عرض جميع المستخدمين في صفحة واحدة ولكن هذا ليس جيد جدا هو ؟

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

أنا النامية على لمحرك تطبيقات باستخدام جافا إطار الربيع بعض الحلول لقد تم التفكير ،

  1. متجر في الدورة تذهب من خلال قائمة (سيئة جدا اعتقد)
  2. أعترف JSP, على وجه التحديد إلى واحدة من نطاقات, صفحة, طلب.... الخولكن أعتقد أن الطلب سوف لا تعمل.
  3. ابحث عن الربيع تحكم التي يمكن التعامل مع هذا.
هل كانت مفيدة؟

المحلول

وبصفة عامة ، يجب أن تستخدم الشكل متغير على الصفحة الخاصة بك (عن طريق GET أو POST) يسمى 'صفحة' ، والذي من شأنه أن يكون عددا.عندما تتلقى هذا في بريمج يمكنك حساب مجموعة استنادا إلى رقم الصفحة و تكوين الصفوف في كل صفحة.

نلقي نظرة على من خلال ترحيل البيانات الكبيرة (نعم انها الثعبان ولكن تطبيق نفس المبادئ) ، الاستفسارات و الفهارس من محرك جوجل التطبيق الوثائق.

نصائح أخرى

نلقي نظرة على http://valuelist.sourceforge.net/

إذا كنت الحفاظ على حجم الصفحة في 10 ثم يمكنك استرداد 10 مستخدمين في الفئة العمرية لكل صفحة على أساس رقم الصفحة:

SELECT TOP 10 users FROM myusers 
 WHERE AGE = function(page_number) 
 ORDER BY some_ordering

أتمنى أن JPA + لمحرك تطبيقات دعم مثل هذا النوع من الاستعلام.

بعض بيانات توفر محركات مفيد امتداد SQL لهذا الغرض فقط.مثل MySQL يمكنك أن تقول شيئا مثل "حدد ...أيا كان ...الحد 50,10" ، حيث "50" هو صف تبدأ مع 10 هو عدد الصفوف التي تريد استرداد.ثم على عرض الصفحة يمكنك ببساطة وضع أزرار التالي والسابق التي تمر المناسبة ابتداء من رقم الصف مرة أخرى إلى الخادم التالية في الاستعلام.

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

أن تأخذ حالة بسيطة ، افترض في المثال يتم عرض السجلات في النظام عن طريق "user_name".يمكنك استخدام البيان.setMaxRows(10) للحد من أي استفسارات إلى 10 صفوف.ثم على أول مكالمة تنفيذ ، يقول " ، حدد ...أيا كان ...من مستخدم النظام من قبل user_name".حفظ آخر user_name وجدت.في الخاص بك المقبل زر تمرير هذا user_name مرة أخرى إلى الخادم و الاستعلام الاتصال التالي هو "تحديد ...أيا كان ...من المستخدم حيث user_name>'xxx' order by user_name" ، حيث 'xxx' هو آخر user_name من المكالمة السابقة.هل setMaxRows مرة أخرى حتى كنت مرة أخرى تقتصر على 10 صفوف من الانتاج.ثم يمكنك السماح للمستخدم الخطوة من خلال انتاج كامل بهذه الطريقة.

السماح للمستخدم العودة إلى الوراء قليلا من الألم.لقد فعلت ذلك عن طريق الحفاظ على طاولة في الدورة متغير مع انطلاق قيمة مفتاح لكل صفحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top