2014-04-24 44 views
5

Powiedz, że widok jest w erb/haml, ale jest statyczny (nie zawiera żadnych dynamicznych części), czy Railsy rekompilują ten widok za każdym razem, gdy ktoś go trafi, czy buforuje go po tym, jak ktoś go raz uderzy?Czy Railsy ponownie kompilują cały widok erb/haml za każdym razem, gdy trafi on w produkcję?

Pytanie uzupełniające: jeśli mam widok z pewnymi częściami dynamicznymi, czy Railsy rekompilują tylko dynamiczną część widoku lub czy rekompiluje ona całą stronę?

biegnę szyny 4.

Odpowiedz

6

Rails ocenia wyświetlać pliki i partials na każde żądanie. Właśnie dlatego buforowanie fragmentów html jest tak cenne.

Zobacz Caching with Rails w Poradniki Rails.

Zwykle do buforowania fragmentu html można użyć pamięci podręcznej Railsów, aby nie wymagać ponownego renderowania przy każdym żądaniu. Oto przykład haml:

- cache "key-name-for-static-content" do 
    .some-html 
    some content 

Zobacz DHH's How Key-Based Cache Expiration Works kluczowych oparte buforowanie przy użyciu modeli.

Dla zastosowań zaawansowanych napisałem cache_rocket, aby pomóc w buforowaniu statycznej zawartości wokół treści dynamicznych w częściach.

+0

Czy to oznacza, że ​​powinienem również buforować statyczną stopkę, jeśli chcę, aby widok był renderowany szybciej? – Sbbs

+1

Tak, jest to dobry przykład tego, co należy przechowywać w pamięci podręcznej. – tee

+0

btw, to całkiem fajny klejnot, który napisałeś; to powinno być częścią torów. – Sbbs