3. Кэширование
увеличение быстродействия за счёт хранения
данных в промежуточном буфере с быстрым
доступом, содержащий копию той
информации, которая хранится в памяти с
менее быстрым доступом, но с наибольшей
вероятностью может быть оттуда запрошена.
2
6. HTTP Caching
работает на уровне протокола. Браузер
может запрашивать информацию у сервера о
содержимом не скачивая его, если сервер
сообщает о том что информация не устарела,
то она не скачивается и используется ранее
скаченная.
5
9. Page Caching
• GET /posts
• Возвращается /public/posts.html если он
существует
• Код приложения не будет вызываться
8
10. Page Caching
• GET /posts
• Возвращается /public/posts.html если он
существует
• Код приложения не будет вызываться
caches_page :index
8
11. Page Caching
• GET /posts
• Возвращается /public/posts.html если он
существует
• Код приложения не будет вызываться
caches_page :index
expire_page :action => :index
8
21. Sweepers
expire_action expire_fragment expire_page
app/sweepers
class PostSweeper < ActionController::Caching::Sweeper
observe Post
11
22. Sweepers
expire_action expire_fragment expire_page
app/sweepers
class PostSweeper < ActionController::Caching::Sweeper
observe Post
after_update after_create after_destroy
11
23. Sweepers
expire_action expire_fragment expire_page
app/sweepers
class PostSweeper < ActionController::Caching::Sweeper
observe Post
after_update after_create after_destroy
cache_sweeper :post_sweeper
11
24. SQL Caching
class ProductsController < ActionController
def index
# Run a find query
@products = Product.all
...
# Run the same query again
@products = Product.all
end
end
12