كيف يمكنني تحسين أداء RichFaces ScrollableDataTable السيطرة ؟

StackOverflow https://stackoverflow.com/questions/86171

  •  01-07-2019
  •  | 
  •  

سؤال

أولا الخلفية قليلا:

أنا عرض مجموعة من البيانات مع 288 الصفوف والأعمدة 8 (2304 السجلات) باستخدام ScrollableDataTable وأداء يترك الكثير مما هو مرغوب فيه.AJAX طلب rerenders التحكم يأخذ ما يقرب من 20 ثانية كاملة ، مقارنة مع 7 ثوان عند تقديم نفس البيانات باستخدام DataTable التحكم.

مقاييس التقاطها عبر بريمج الفلاتر و جافا سكريبت تبين أن تقريبا كل زمن هو قضى على جانب العميل.من 19.87 الطلب الثاني, 3.87 ثانية ينفق على خادم...مع أقل من .6 ثانية قضى للاستعلام و فرز البيانات.

التحول إلى DataTable التحكم في خفض الطلب ، رد ، و تقديم دورة وصولا إلى 1/3 من ما اراه مع ScrollableDataTable ، ولكن أيضا يزيل العديد من الميزات الهامة.

و السؤال الآن:

وقد أي شخص آخر من ذوي الخبرة مشكلات في الأداء مع ScrollableDataTable?ما هي الطريقة الأكثر فعالية لتقديم كميات كبيرة من جداول البيانات في JSF/RichFaces مع معلقة الأعمدة اثنين من محور التمرير?

تحديث:

لقد انتهى الأمر كتابة التحكم المخصصة.السيطرة الكاملة على تقديم مكونات ولدت جافا سكريبت يسمح لنا تحقيق زمن استجابة مماثلة DataTable.أنا أتفق مع زاك على الرغم - ترقيم الصفحات هو الجواب الصحيح.

هل كانت مفيدة؟

المحلول

عنق الزجاجة هو الأكثر احتمالا في "تقديم رد" مرحلة JSF دورة الحياة.إنها تحاول أن تجعل الكثير من مكونات عرض في وقت واحد.

اقتراحي هو استخدام ترقيم الصفحات.ينبغي أن تزيد إلى حد كبير من الأداء لأنه جعل أجزاء أصغر من عرض في وقت واحد.

تأكد من أن rich:dataTable لديه rows إعداد و أيضا -- إذا كنت تفعل أي عمود تصفية -- تأكد من أن موعد مائدة أيضا الخاصية reRender="paginator" حيث paginator هو rich:datascroller.

نصائح أخرى

لدي مشاكل مماثلة منذ وقت طويل انتهى من كتابة برنامج صغير لعرض البيانات التي تفاعلت مع الصفحة باستخدام livescript.لي مشاكل في الأداء هي نفس ما تراه.العميل استغرق أكثر من 30 ثانية إلى تقديم بيانات الجدول و تشغيل خادم ردي حولها في أقل من 2 ثانية.

هذا يبدو وكأنه خطأ في جافا سكريبت المنتجة لعرض الجدول.هل حاولت الصفحة في متصفحات مختلفة ؟ التي JSF تنفيذ تستخدمه (ري أو MyFaces أو أي شيء آخر)?

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