Laravel-datatables: تحميل البيانات بطيء جدًا لعدد كبير من الصفوف.

تم إنشاؤها على ٨ مارس ٢٠١٧  ·  14تعليقات  ·  مصدر: yajra/laravel-datatables

ملخص المشكلة أو طلب الميزة


حاولت تطبيق Datatable مع Laravel ولكن لدي مشكلة عندما يحتوي الجدول على عدد كبير من الصفوف لأن Datatable يحصل على ALL في طلب واحد ثم ترقيم الصفحات على جانب JS. هل يمكنني استخدام ترقيم صفحات Laravel أم يمكنني إرجاع صفوف مرقمة باستخدام طريقة paginate() من Eloquent على طريقة ajax؟ لأن هذه مشكلة كبيرة لمشروعي. تحميل البيانات بطيء جدًا. عندما أقوم بالبحث عن بعض عمليات معالجة الكلمات تكون أيضًا بطيئة جدًا وبعد بعض العمليات مثل sort و search وما إلى ذلك ، يتم تجميد الصفحة ولا يحدث شيء.
آمل أن يكون لدى شخص ما نفس المشكلة مثل هذه.

مقتطف رمز المشكلة

                serverSide: true,
                processing: true,
                render: true,
                columns: [
                    {data: 'code'},
                    {data: 'name', "defaultContent": "<i>Not set</i>"},
                    {data: 'native_name',  "defaultContent": "<i>Not set</i>"},
                    {data: 'action'}
                ],
                ajax: '{!! route('dt-languages') !!}'

تفاصيل النظام

  • نظام التشغيل لينوكس
  • إصدار PHP 7.0.4
  • إصدار Laravel 5.4.1
  • Laravel-Datatables الإصدار 7.2

التعليق الأكثر فائدة

تحتاج إلى إزالة الحصول على استخدام منشئ الاستعلام.

return $this->languages->select('languages.*');

ال 14 كومينتر

ربما كنت تستخدم مجموعة بدلا من الاستعلام؟ هل يمكنك لصق رمز جانب الخادم الخاص بك؟ شكرا!

أستخدم نمط المستودع وفي LanguageRepository.php لدي:
return $this->languages->select('languages.*')->get();

تحتاج إلى إزالة الحصول على استخدام منشئ الاستعلام.

return $this->languages->select('languages.*');

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

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'languages.action' in 'where clause' (SQL: select count(*) as aggregate from (select '1' as `row_count` from `languages` where (LOWER(`languages`.`name`) LIKE %m% count_row_table)

اضبط الإجراء على أنه غير قابل للبحث / قابل للطلب منذ إضافته إلى العمود.

شكرا جزيلا! تضمين التغريدة
عندما أنتهي من الاختبار ، سأرسل لك النتائج

نتائج الاختبار الخاصة بي:

الاستعلام الأول:
select count(*) as aggregate from (select '1' as row_count from languages where languages.deleted_at is null and languages.deleted_at is null) count_row_table -> 3.64 مللي ثانية

الاستعلام الثاني:
select languages.* from languages where languages.deleted_at is null order by code asc limit 10 offset 0 -> 1.05 مللي ثانية

شكرا yajra مرة أخرى للمساعدة.

سعيد لأنني كنت قادرًا على المساعدة! شكرا!

أنا أعاني من المشكلة. عرض بطيء. الاستعلام من جانب الخادم الخاص بي.

 $products = DB::connection("mysql2")->table('products')->
        join('products_description', 'products.products_id', '=', 'products_description.products_id')
            ->select(['products.products_id', 'products_description.products_name', 'products.products_isbn13', 'products.products_distributor', 'products.products_price', 'products.products_status']);
 return Datatables::of($products)->make(true);

ساعدني. هل يجب أن أكتب البرنامج النصي الخاص بي لترقيم الصفحات؟ ماذا علي أن أفعل؟
لديّ سجلات لأكثر من 4 ملايين منتج.
yajra ممتن للغاية إذا ساعدتني.

لقد حصلت على هذا أيضًا ، فربما لا يكون طلب البيانات غير المتسلسل لحدود ترقيم الصفحات إلى الاستعلام؟

pnghai كيف يمكنني التحقق من ذلك؟

hsali أنا آسف. انذار كاذب. اتضح أن منطقتي تضمنت جلب صورة عن بُعد ، والتي ترتبط بخادم مسدود وتفرض على كل سجل إحضار اتصال 404 خاطئًا ، والتي تشغل عددًا من السجل * 60 (ثوانٍ قبل انتهاء المهلة). لقد علقت هذا المنطق والأشياء تعمل بشكل جيد للغاية الآن.

شكرا جزيلا
(ع / ق: إن pnghai نيك هو حساب جيثب آخر لي)

pnghai كيف يمكنني التحقق من ذلك؟

هل كنت قادرا على حل هذه؟ إذا كانت الإجابة بنعم ، فكيف؟

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

ezani92 picture ezani92  ·  33تعليقات

AbuHamdah picture AbuHamdah  ·  33تعليقات

baig772 picture baig772  ·  14تعليقات

faisalhilmi picture faisalhilmi  ·  18تعليقات

jay-shah-rushiinfotech picture jay-shah-rushiinfotech  ·  19تعليقات