【发布时间】:2016-09-29 14:56:38
【问题描述】:
我正在使用 laravel 5.1,我想将 ajax get 请求调用作为其管理仪表板。
我正在使用数据库查询来获取我的响应返回并使用 ajax 获取表格和图表上的数据,因为我有日期过滤器和其他过滤器。
当我点击应用按钮时,我的应用加载速度太慢,在页面上发出不同类型的请求。
这就是我正在做的事情。
$data = DB::table("leads")
->select((array(DB::Raw('DATE(leads.created_at) as creation'),
DB::Raw("COUNT(leads.id) as total_leads"), DB::Raw("leads.id as id"),DB::Raw("leads.customer_name as customer_name" ),DB::Raw("leads.city as city"), DB::Raw("leads.email as email"),DB::Raw("leads.contact as contact"),DB::Raw("leads.source as source"),DB::Raw("leads.campaign_name as campaign"),DB::Raw("leads.ad_group as ad_group"),DB::Raw("leads.ad as ad"),DB::Raw("leads.keyword as keyword") )))
->where("leads.created_at",">=",$startDate)
->where("leads.created_at","<",$endDate)
->groupBy("leads.created_at")
->orderBy("leads.created_at","desc")
->get();
return view("dashboard",compact("data"));
现在如果我使用这个查询来获取 ajax 调用,看起来像这样
$(document).ready(function(){
$(".applyBtn").on("click",function(){
var i = $('input[name="daterangepicker_start"]').val();
var e = $('input[name="daterangepicker_end"]').val();
console.log(i);
console.log($("input[id=daterangepicker_start1]").val($('input[name="daterangepicker_start"]').val()));
console.log($("input[id=daterangepicker_end1]").val($('input[name="daterangepicker_end"]').val()));
var data = "daterangepicker_start="+i+"&daterangepicker_end="+e;
$.ajax({
type:"GET",
data:data,
url:'{{ URL::to("/date1") }}',
success:function(data)
{
$("#ack").html(data);
}
})
我正在返回另一个刀片模板来替换 div ack。
这个东西在 localhost 中工作得很好,它的工作速度比它在服务器上的加载速度要快得多,但是当我在 linode 服务器上加载它时,这个查询变得太慢而无法工作。我已经安装了调试栏,它说加载所有查询需要 400 毫秒。服务器上会不会有任何配置问题,因为它只使用以前配置的apache。
我在几个页面上有太多数据库查询,比如仪表板、潜在客户页面。
我需要做什么来优化我的 laravel5.1 应用程序,以及如何使用 ajax 轻松地为它提供服务。
请让我知道任何解决方案,以便 ajax 发出的加载请求花费更少的时间来加载另一个拉取数据视图的刀片模板。
【问题讨论】:
标签: php jquery mysql ajax laravel-5.1