【发布时间】:2016-09-07 10:17:12
【问题描述】:
假设我点击 /demo url,那么它将转到控制器 n,从具有 400 个数据的数据库表中获取数据 1,类似地,数据 2 具有 1200 个数据。 结构以这种方式工作,首先它转到控制器从数据库中获取 1200+400 个数据,然后使用 foreach 使用这些 400+1200 个数据进行查看,它在 modal1 中显示 400,在 modal2 中显示 1200 个数据……它以缓慢加载的方式加载大数据。这就是为什么我尝试拆分数据的原因。所以我对每个按钮调用都使用了 ajax,但是对控制器的 ajax 调用在 localhost 中可以正常工作,但不能在真实 IP 中工作。 有没有更好的方法/解决方案来减少加载时间??
我的结构 在控制器中
$data1(here data is around 500)
$data2 (here data is around 1200)
return view(viewname’,compact('data1','data2'));
考虑中
<button class=”t1”>
<button class=”t2”>
@include(‘modal1’)
@include(‘modal2’)
在模态1中
@foreach($data1 as $v)
{{$v->name}}
@endforeach
在模态2中
@foreach($data1 as $v)
{{$v->name}}
@endforeach
在这里,当我单击按钮时,它会打开 modal1..n,当我单击另一个按钮时,它会打开 modal2。我在 modal 中使用了数据表。(有搜索、分页)
【问题讨论】:
-
分页通常是将大块数据减少到更易于管理的大小的方法,但 500 或 1200 行确实不是“大数据”。
-
可能不是大数据..........但它的加载速度很慢......这对于用户等待加载是非常低效的
-
你应该用时间来定义“慢”——10秒,100毫秒?我的意思是它不应该加载缓慢。确保您的数据被正确索引,在重要位置启用一些日志记录,使用
EXPLAINmysql 功能(或您的 DBMS 中存在的任何等效功能)并找出导致它变慢的原因。顺便说一句,您是否有机会使用带有“共享文件夹”功能的 Vagrant?这往往会对性能产生很大影响,即在实时服务器上发生的事情应该比在 Vagrant 机器上发生得更快。 -
需要一些时间的原因可能是因为您的浏览器需要渲染大量新的 HTML。 @KaloyanDoichinov 是对的,您应该使用分页来减少大块。查看this了解更多信息。
-
@KaloyanDoichinov 我忘记通知我在模态中使用了数据表......已经有分页,搜索。不,我没有使用 vagrant...我可以先减少加载吗??
标签: performance laravel load