Datatable hakkında

Redix

MT Üye
MT Üye
Mesaj
304
Çözümler
6
Beğeni
89
Puan
509
Ticaret Puanı
0
Datatable client side'dan server-side ' a çevirdim performans baya arttı lakin bi süre sonra yine düşünüyor henüz çok veri çekmiyorum 250satır kadar internetten araştırdığımda yüklü veri çekimi için server-side yazmışlar zaten o yüzden çevirdim

Daha cok performans için neler yapılabilir
Aklıma bi lazy load geldi başka fikri olan önerisi olan varsa dinlemekten mutlu olurum
 
Tam olarak ne yapmak istediğine bağlı olarak önerilebilecek şeyler değişecektir. Konuyu biraz daha açma şansın var mı?
 
Sever-side kısmını nasıl yazdığınıza bağlı olarak iyileştirmeler yapılabilir. Sorguyu nasıl yazdınız, sayfalama metodunuz ney bir sürü etken ortaya çıkıyor. On binlerce veriyi server-client mantığıyla datatable a aktarma işlemi yaptım. Arama, filtreleme ve sayfalama gibi işlevler çok seri gerçekleşiyordu.
 
Draw kullanmadım. framework Ci3 ve e-ticaret tabanlı bir site admin panelde ürünleri listelerken client-side kullanılıyordu buda ilk başta hepsini yükleyip daha sonra sayfalama vs yapıyordu buda beni hem rahatsız ediyordu hemde araştırdığımda ileride performans kaybı yaşattığını okudum makalelerde. Server-side geçiş yaptım sayfalama hazır şekilde geliyor ve tümünü yüklemiyor istediğimde buydu Ama biraz sayfalama yapınca yine çok az performans düşüklüğü hissediyorum aklıma bir tek lazy load geliyor imagede yüklediği için illa yararı olacaktır.
codeigniter3 datatable libraries kullanıyorum
Controller Json:
    public function country_datatable_json() //@fixme isim değiştir.
    {                                        
        $records = $this->products_model->get_all_pro();
        $data = array();
        $count=0;
        foreach ($records['data']  as $row)
        {
            //-------------------------------------------------------

            $urun_gorsel = "<img src=\"" . base_url("public/categories/") . $row["image_url"] . "\" alt=\"" . $row["product_name"] . "\" class=\"img-fluid rounded border-primary\" width=\"100\" height=\"auto\" style=\"border: 2px solid;object-fit: contain;height: 50px !important;width: 90px !important;\">";
            $is_api = ($row['is_api'] == 1) ?
                '<div><small>' . (isset($row['api_json']) ? json_decode($row['api_json'])->attribution : '') . '</small></div><a href="' . base_url('admin/products/attribution/' . $row['id']) . '" class="btn btn-sm btn-primary"><i class="fas fa-link"></i></a>' :
                '<div><small>-- YOK --</small></div>';
            $is_active = ($row['is_active'] == 1) ? '<div class="badge badge-lobby-success"><i class="fas fa-check"></i> Yayında</div>' : '<div class="badge badge-lobby-danger"><i class="fas fa-times"></i> Yayında Değil</div>';
            $islemler = '<a href="' . base_url("admin/products/edit/" . $row['id']) . '" class="btn btn-primary btn-sm"><i class="fas fa-edit"></i> Düzenle</a>' .
                        '<a href="' . base_url("admin/products/edit/" . $row['id'] . "?delete") . '" class="btn btn-sm btn-danger" data-toggle="modal" data-target="#deleteModal' . $row['id'] . '"><i class="fas fa-trash-alt"></i> Sil</a>';

            //-------------------------------------------------------
           
            $data[]= array(
                //++$count,
                $row['id'],
                $urun_gorsel,
                $row['product_name'],
                $is_api,
                $is_active,
                $islemler,
            );
        }
        $records['data']=$data;
        echo json_encode($records);                          
    }
Views Java:
    <script>
  //---------------------------------------------------
    var table = $('#dataTables').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "<?=base_url('admin/products/country_datatable_json')?>",
        //"order": [[0,'asc']],
        "order": [[0, 'desc']],
        "pageLength": 40,
        "lengthMenu": [[40, 100, 150, 250, 10000], [40, 100, 150, 250, "All"]],
        "responsive": true,
        "autoWidth": false,
        "columnDefs": [
            { "targets": 0, "name": "id", 'searchable':false, 'orderable':true},
            { "targets": 1, "name": "image", 'searchable':false, 'orderable':false},
            { "targets": 2, "name": "product_name", 'searchable':true, 'orderable':true},
            { "targets": 3, "name": "is_api", 'searchable':false, 'orderable':true},
            { "targets": 4, "name": "is_active", 'searchable':false, 'orderable':true},
            { "targets": 5, "name": "islemler", 'searchable':false, 'orderable':false,'width':'100px'}
        ],
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Turkish.json"
        },
    });
    </script>
 
Geri
Üst