2010-11-15 2 views
8

Как я могу отобразить время загрузки страницы в представлении, подобно тому, как файл журнала показывает «Заполненные 200 OK в 19ms (Просмотров: 16.8ms | Модели: 0.497ms)»Показать время загрузки страницы в Rails 3

+0

Все здесь, что вам нужно больше? – shingara

+5

Я думаю, что он означает отображение времени в представлении, когда вы смотрите на него в браузере. Не из журналов – johnmcaliley

ответ

14

Вы можете лучше использовать Секунды:

class ApplicationController < ActionController::Base 

    before_filter :set_start_time 

    def set_start_time 
    @start_time = Time.now.to_f 
    end 

end 

Просмотр кода:

Page Rendered in <%= sprintf('%.3f', (Time.now.to_f - @start_time)) %> seconds 
+1

Это часто приводит к отрицательным значениям, так как 'usec' обходит вокруг нуля каждую секунду. –

10

Вы можете сделать это .. добавить before_filter к вашему application_controller:

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    before_filter :init 

    def init 
    @start_time = Time.now 
    end 
end 

в представлении (я использую HAML):

load_time=#{[email protected]_time} seconds 

Это не будет точно такой же, как время, вы видите в журналах, так как i t только от before_filter до места, где он был вызван в представлении, но он должен быть близок.

+0

и, конечно же, это довольно уродливо в представлении, просто показывая это для простоты. Вы хотели бы поставить это в помощнике – johnmcaliley

+0

Достаточно близко для меня! Благодаря!!! –

0

Просто пройти через ниже railcast видео вы получите, чтобы узнать все заинтересованные детали.

http://railscasts.com/episodes/368-miniprofiler?view=asciicast 
0

Вы можете использовать rack-mini-profiler, который добавляет немного значок в верхней части страницы с указанием всех деталей скорости рендеринга.

Смежные вопросы