2016-09-07 2 views
0

Предположим, я ударил /demo url, затем он перейдет к контроллеру. N возьмет данные1 из таблицы базы данных, которая имеет 400 данных аналогично данным 2, который имеет 1200 дБ. Структура работает таким образом, сначала переходите к контроллеру, беря 1200 + 400 datas from db, затем переходите к просмотру с этими 400 + 1200 datas n, используя foreach, он показывает 400 в modal1 n 1200 datas в modal2 ... он загружает большие данные, которые он медленно загружает . Поэтому я пытаюсь разделить datas.so я использовал ajax для каждого вызова кнопки, но вызов ajax для контроллера работает точно в localhost, но не работает в реальном ip. Есть ли лучший способ/решение для уменьшения времени загрузки?Как уменьшить время загрузки laravel в laravel, когда берут большие данные из базы данных?

моя структура В контроллере

$data1(here data is around 500) 
$data2 (here data is around 1200) 
return view(viewname’,compact('data1','data2')); 

Ввиду

В modal1

@foreach($data1 as $v) 
{{$v->name}} 
@endforeach 

В modal2

@foreach($data1 as $v) 
{{$v->name}} 
@endforeach 

здесь, когда я нажимаю кнопку открывает modal1..n при нажатии другой кнопки он открывает modal2.i используется DataTables в модальный. (Есть поиск, нумерация страницы)

+0

Разбивка, как правило, способ снижения больших объемов данных на более управляемые размеров, но 500 или 1200 строк, на самом деле не «большие данные». –

+0

может быть его не большими данными .......... но его загрузка медленно ... это очень неэффективно для пользователя, чтобы ждать до загрузки – Borna

+0

Вы должны определить «медленно» в течение времени - 10 секунд, 100 мс? Я думал, что это не будет медленно загружаться. Убедитесь, что ваши данные правильно проиндексированы, включите некоторые записи в важных местах, используйте функцию mysql 'EXPLAIN' (или какой-либо эквивалент в вашей СУБД) и выясните, что замедляет ее. Кстати, вы случайно используете Vagrant с функциями «общих папок»? Это имеет тенденцию сильно влиять на производительность, то есть что-то должно происходить намного быстрее на реальном сервере, чем в коробке Vagrant. –

ответ

0

Когда мы используем Datatable, тогда все данные сначала загружаются, а затем отображаются с разбивкой по страницам. Это может занять много времени, если у вас огромный объем данных. Когда вы используете разбивку на страницы, если данные в соответствии с отображением страниц отображаются только тогда, это сэкономит ваше время загрузки.

Вы можете использовать этот пакет, чтобы решить эту проблему: https://github.com/yajra/laravel-datatables

Смежные вопросы