我正在使用Sinatra開發一個Web應用程序,但我遇到了很長的頁面加載時間問題。使用Ajax加快Sinatra頁面加載速度?
該應用程序經歷並顯示了大量的數據,所以我確信這是原因,但我想知道是否有一種方法可以首先加載頁面的主要erb佈局,然後在加載之後,數據加載它的頂部。
我的第一個想法是AJAX,但我不知道如何實現這一點。
在此先感謝。
我正在使用Sinatra開發一個Web應用程序,但我遇到了很長的頁面加載時間問題。使用Ajax加快Sinatra頁面加載速度?
該應用程序經歷並顯示了大量的數據,所以我確信這是原因,但我想知道是否有一種方法可以首先加載頁面的主要erb佈局,然後在加載之後,數據加載它的頂部。
我的第一個想法是AJAX,但我不知道如何實現這一點。
在此先感謝。
你是對的,它可能有幫助。 「將不同於未改變的」分開的舊口號適用於編程的任何部分。
這裏是一個返回一些數據路徑:
require 'json'
get "/time-now/?" do
content_type :json
{time: Time.now.to_s}.to_json
end
和這裏的一些JavaScript(jQuery ajax)來稱呼它:
$.ajax({
accepts: "application/json",
type: "GET",
url: "/time-now",
dataType: "json",
success: function(res, status, xhr) {
return [$("#time").html(res)];
},
error: function(res, status, xhr) {
return [$("#time").addClass("error")];
},
complete: function(res, status, xhr) {
return [$("#button1").show()];
}
});
(jQuery的那一位可以是一點點錯,只是警告你,這是一個副本'n粘貼工作黑客來適應這個例子)
也許你可以停止服務用戶頁面從Sinatra路線和使用靜態(即預建)頁面在他們的AJAX調用Sinatra路線的JavaScript。或者兩種類型的混合物。然後你已經有了一個Web服務數據API的開始。有很多javascript框架可以幫助解決這個問題(例如Ember,Backbone,Angular等)以及大量的API構建器,例如Grape和Weasel Diesel。
謝謝!那很完美! – imtuned 2015-01-21 18:36:37