عمود تاريخ AgGrid JSON ، تصفية الترتيب بطيئة للبيانات الضخمة

لدي عمود تاريخ JSON في AgGrid بسجلات 20K +. أستخدم أداة مقارنة التاريخ لفرز التواريخ. هل هناك طريقة أفضل من ذلك أدناه لفرز هذا النوع من التاريخ لأنني أواجه البطء في طلبي أثناء الفرز والتصفية لمجموعة البيانات الضخمة.

من أجل الفرز

 comparator: function (date1, date2) {
                var date1Number = fnDateToComparableNumber(moment(date1).toDate());
                var date2Number = fnDateToComparableNumber(moment(date2).toDate());

                if ((date1Number === null || isNaN(date1Number)) && (date2Number === null || isNaN(date2Number))) {
                    return 0;
                }
                if (date1Number === null || isNaN(date1Number)) {
                    return -1;
                }
                if (date2Number === null || isNaN(date2Number)) {
                    return 1;
                }

                return date1Number - date2Number;
            }

للتصفية

filterParams: {
                //applyButton: true,
                clearButton: true,
               //provide comparator function
                comparator: function (filterLocalDateAtMidnight, cellValue) {
                   //We create a Date object for comparison against the filter date
                    if (cellValue == '') {
                        return 1;
                    }

                    var cellDate = moment(cellValue).toDate();

                   //Now that both parameters are Date objects, we can compare
                    if (cellDate < filterLocalDateAtMidnight) {
                        return -1;
                    } else if (cellDate > filterLocalDateAtMidnight) {
                        return 1;
                    } else {
                        return 0;
                    }
                }
            },

ملحوظة:

  1. أستخدم لحظة لتلاعب التاريخ
  2. تاريخ JSON مطلوب لتصدير برنامج Excel. آخر عملية CellCallback مكلفة في حالة البيانات الكبيرة. لقد فعلت بعض الاختراق لنسق excel وإلا سيعرض excel التاريخ كرقم.
  3. لدينا ترخيص enterprise لـ Ag-Grid
0

1 إجابة

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

 comparator: function (date1, date2) {
                var date1Number = fnDateToComparableNumber(Date(date1));
                var date2Number = fnDateToComparableNumber(Date(date2));

                if ((date1Number === null || isNaN(date1Number)) && (date2Number === null || isNaN(date2Number))) {
                    return 0;
                }
                if (date1Number === null || isNaN(date1Number)) {
                    return -1;
                }
                if (date2Number === null || isNaN(date2Number)) {
                    return 1;
                }

                return date1Number - date2Number;
            }

ربما ستحتاج إلى تحليل التاريخ يدويًا ولكنك لا تزال أسرع من استخدام اللحظة.

0
وأضاف