Вопрос

У меня есть действие индекса контроллера, которое возвращает вывод JSON.

render :json => my_array.to_json

Какой тип кэширования я должен использовать здесь. Разве «кэширование страницы» имеет смысл для этого.

Или я должен сделать кэширование действий, как ниже

caches_action :index
Это было полезно?

Решение

Либо действия кэширования действий или кэширование страницы будут работать нормально; Кэширование страницы будет иметь преимущество никогда не звонить в стек рельсов, но это зависит от того, нужно ли вам контролировать, кто обращается к тому, что JSON.

Я большой поклонник использования кэширования страницы, если вы можете уйти с ним - есть большие сбережения на системных ресурсах. :)


Редактировать: Пример кэширования страницы, на случай, если произошла какая-то путаница:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

Если я что-то неправильно понял, что должно быть все, что вам нужно сделать.

Другие советы

Такие же соображения должны обратиться к JSON как любой другой выход. Если вам нужно подтвердить доступ к данным для пользователя, то кэширование действий - это путь к работе, в противном случае кэширование страницы должно быть в порядке.

Если данные изменяются из-за логики в вашем приложении, то обе формы кэширования проблематичны, и вам лучше использовать что-то еще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top