我正在構建一個有很多圖的應用程序。我想通過Ajax加載圖表以減少初始加載時間。這是當前儀表板視圖的樣子。加載視圖通過Ajax
<section class="container">
<section class="row">
<div class="span6 graph-container">
<h3 class="box-header"><i class="icon-truck"></i>Service Levels</h3>
<div class="box">
<img src="/assets/loading.gif" class="loading" />
<%= content_tag :div, "", id: "shipments-by-service-type", data: {shipments: @charts[:service_analysis][:spend_data]} %>
</div>
</div>
<div class="span6 graph-container">
<h3 class="box-header"><i class="icon-circle"></i>Weight Summary</h3>
<div class="box">
<%= content_tag :div, "", id: "weight-ranges", data: {weight: @charts[:weight_analysis][:spend_data]} %>
</div>
</div>
</section>
<section class="row">
<div class="span6 graph-container">
<h3 class="box-header"><i class="icon-road"></i>Zone Summary</h3>
<div class="box">
<%= content_tag :div, "", id: "weight-groups-zones", data: {zone: @charts[:zone_analysis][:spend_data]} %>
</div>
</div>
<div class="span6 graph-container">
<h3 class="box-header"><i class="icon-time"></i>Spend Over Time</h3>
<div class="box">
<%= content_tag :div, "", id: "shipping-trends", data: {trends: @charts[:shipping_trends][:spend_data]} %>
</div>
</div>
</section>
</section>
我當前的想法是要在控制器稱爲charts_controller.rb
這將包含所有的邏輯的每個圖表和已具有的方法的視圖或部分的對應,然後通過Ajax加載在這些中的每一個觀點。
class ChartsController < ApplicationController
before_filter :authenticate_user!, :company_id
def service_level
#logic for service_level graph
respond_to do |format|
format.html
format.js
end
end
end
例如 我是新來使用Ajax的工作軌道內,我不知道如何去這樣做。這種方法有意義嗎?
你的意思是對於圖形的面積將被initiallt空,則用戶觸發一些按鈕點擊並出現? – MurifoX
是的,這就是我想,在等待它們出現時顯示加載gif。 – rigelstpierre