سؤال

ولقد وضعت تطبيق 3-الطبقة ولدي مشكلة حول ملء البيانات من قاعدة بيانات. طلبي لديه نافذة يقوم بالاستعلام البيانات الكبيرة من قاعدة البيانات وهذه العملية تستغرق وقتا طويلا جدا. (موكلي حتى الآن من الخادم واتصال بينه هو 128 كيلوبايت / ثانية).

وبعد ذلك لقد اعتقد لحل حل هذه المشكلة. الحل هو تجميع سجلات العاشر من البيانات كل ثانية ذ. (على سبيل المثال: نشر 10 سجلات للعرض على واجهة المستخدم أولا ثم عرض مزيد من 10 صف واحد كل 5 ثانية)

هل هذا حل جيد في حل هذه المشكلة؟ هل هناك طريقة أفضل لحل هذا؟

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

المحلول

إذا كان لأغراض العرض يجب أن تكون باستخدام الترحيل. وهناك تباين من هذا، حيث UI الاستيلاء على "صفحة" القادمة من السجلات عندما يحاول الوصول إلى المستخدم المزيد من المعلومات مع شريط التمرير. إذا كنت بحاجة إلى تجميع البيانات، أن تفعل ذلك على الاستعلام، وبالتالي فإن البيانات كله لا يسافر الحوض الصغير الشبكة. إذا كنت حقا / على الاطلاق للحصول على بيانات كاملة والقيام ببعض العمليات معها، والنظر في ما اذا كان أو سيكون من أي وقت مضى كبيرة جدا لتحميل في كل مرة. في هذه الحالة، قطع الاستيلاء على البيانات، تشغيل العمليات ذات الصلة، ومن ثم الاستيلاء على قطعة آخر (هكذا). بغض النظر، ما عليك القيام به مع النهج الذي لا يمنع UI (المواضيع / عمليات متزامنة).

نصائح أخرى

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

إذا كنت تفكر في المواقع، فإنها دائما تقريبا صفحة البيانات كما لا لتحميل كل شيء في وقت واحد.

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

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

وأود أن أقترح أيضا استخدام المكالمات غير متزامن لاسترداد البيانات بحيث كنت لا فريز التطبيق في حين الاستعلام (إذا كان التطبيق سطح المكتب).

إذا التطبيق على الشبكة العالمية، النظر في استخدام AJAX.

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