php - Laravel 5.1 ajax get 请求需要更长的时间来加载页面

标签 php jquery mysql ajax laravel-5.1

我正在使用 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);

      }
  })

我正在返回另一个 Blade 模板来替换 div ack。

这个东西在本地主机上运行得很好,它的运行速度比在服务器上加载要快得多,但是当我在 linode 服务器上加载它时,这个查询变得太慢而无法工作。我已经安装了调试栏,它说加载所有查询需要 400 毫秒。服务器上会不会有任何配置问题,因为它使用的是 apache,因为它只是之前配置的。

我在几个页面上有太多的数据库查询,比如仪表板、潜在客户页面。

我需要做什么来优化我的 laravel5.1 应用程序,以及如何使用 ajax 轻松地为它提供服务。

请让我知道任何解决方案,以便 ajax 发出的加载请求花费更少的时间来加载拉取数据 View 的其他 Blade 模板。

最佳答案

你的 blade 文件可能出了大问题。请正确设置您的文件并将 js、css 渲染到一个主 Blade 文件本身,而不是在您渲染 ajax 的 Blade 模板上。

如果页面加载在加载时初始化的 javascript 不起作用,请始终记住启动需要在不同的点击时呈现的 js。因此,再次进入您的 ajax 成功函数,为特定元素启动 javascript。

关于php - Laravel 5.1 ajax get 请求需要更长的时间来加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548351/

相关文章:

php - 如何从多个 SQL 表中获取值并在 html/php 表中显示?

javascript - jquery sortable 除了这个

javascript - 有固定导航栏时跳转到页面的不同部分

php - 比较 float - 相同的数字,但不相等?

php - 在单个查询中检查某些用户 ID 是否与已登录用户为好友

javascript - jQuery 日期选择器不显示数据库中的值

php - 执行 mysqli 插入查询然后立即选择新行的 ID

python - 在 ZSI Soap 中使用扭曲的 adbapi

php - jquery和cakephp中的分页和过滤问题

php - 增量总数