为什么 $.ajax 函数作为页内脚本被调用两次?

问题描述

app/controllers/dashboards_controller.rb

class DashboardsController < ApplicationController
  def admin
    if request.xhr?
      if params[:section] == 'sales_bar'
        @sales_bar = current_user.sales_bar.to_json
      elsif params[:section] == 'orders_bar'
        @orders_bar = current_user.orders_bar.to_json
      else
        @sales_bar = current_user.sales_bar.to_json
        @orders_bar = current_user.orders_bar.to_json
      end
    end

    respond_to do |format|
      format.js
      format.html
    end
  end
end

app/views/dashboards/admin.html.slim

.charts
  #sales-bar-section
    .ui.segment
      .head
      .content
        .ui.inverted.dimmer.active
          .ui.indeterminate.small.text.loader = 'Loading'

  #orders-bar-section
    .ui.segment
      .head
      .content
        .ui.inverted.dimmer.active
          .ui.indeterminate.small.text.loader = 'Loading'

javascript:

  $.ajax({
          url: "#{admin_dashboard_path}",// dashboards_controller#admin as js
          dataType: 'script',type: 'GET',data: {
              month: "#{Date.today.to_s}"
          }
      }).success(function () {
          $('.ui.dimmer').removeClass('active');
      }).error(function () {
          $('.ui.dimmer').removeClass('active');
          show_ajax_error("Error loading data - Please refresh page again.");
      });

app/views/dashboards/admin.js.erb

<% if params[:section] == 'orders_bar' %>
  $("#orders-bar-section").html("<%= escape_javascript(render partial: 'dashboards/orders_bar',locals: { widget_data: @orders_bar,url: admin_dashboard_path }).html_safe %>");
<% elsif params[:section] == 'sales_bar' %>
  $("#sales-bar-section").html("<%= escape_javascript(render partial: 'dashboards/sales_bar',locals: { widget_data: @sales_bar,url: admin_dashboard_path }).html_safe %>");
<% else  %>
  $("#orders-bar-section").html("<%= escape_javascript(render partial: 'dashboards/orders_bar',url: admin_dashboard_path }).html_safe %>");
  $("#sales-bar-section").html("<%= escape_javascript(render partial: 'dashboards/sales_bar',url: admin_dashboard_path }).html_safe %>");
<% end %>

信息:这些部分加载在标签内的“admin.html.slim”上的ajax请求上。

(对于 admin.html.slim 的 turbolink/non-turbolink 访问) 当加载 admin.html.slim 时,$.ajax 方法调用两次,直接在标签内部。为什么它被调用了两次?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...