2010-11-15 15 views
8

¿Cómo puedo mostrar el tiempo de carga de la página en la vista, similar a cómo los archivos de registro muestra "200 OK completadas en 19ms (Visitas: 16.8ms | Modelos: 0.497ms)"Pantalla de carga de página en Rails 3

+0

Todo está aquí, ¿qué es lo que quiere más? – shingara

+5

Creo que quiere decir mostrar la hora en la vista cuando la miras en un navegador ... no desde los registros – johnmcaliley

Respuesta

14

Es posible que desee utilizar segundos mejor:

class ApplicationController < ActionController::Base 

    before_filter :set_start_time 

    def set_start_time 
    @start_time = Time.now.to_f 
    end 

end 

Ver código:

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

Esto a menudo dará como resultado valores negativos, ya que 'usec' se ajusta a cero por segundo. –

10

Usted puede hacer esto .. añadir un before_filter a su application_controller:

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    before_filter :init 

    def init 
    @start_time = Time.now 
    end 
end 

en la vista (estoy usando HAML):

load_time=#{[email protected]_time} seconds 

esto no va a ser exactamente el mismo que el tiempo ves en los registros, ya que t es solo del before_filter al lugar donde se llamó en la vista, pero debe estar cerca.

+0

y, por supuesto, es algo desagradable en la vista, simplemente mostrando esto por simplicidad. Querrá poner eso en una ayuda – johnmcaliley

+0

¡Lo suficientemente cerca para mí! ¡¡¡Gracias!!! –

0

Sólo tienes que ir a través del siguiente vídeo railcast que llegaremos a conocer todos los detalles de que se trate.

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

Usted podría utilizar rack-mini-profiler que añade un poco de placa a la parte superior de la página que muestra todos los detalles de la velocidad de renderizado.