Я не уверен, как использовать json в моем приложении rails (2.3.5).Это те элементы, которые мне нужны:
- html template
- json data
- javascript для отображения данных в шаблоне (я использую PURE )
Данные json, рассчитанные с использованием вспомогательных методов (rails и мои собственные), довольно велики и меняются не часто (в общем случае это нижний колонтитул, верхний колонтитул и некоторые другие части страницы), так что это должно быть в кеше.Как правильно это сделать?
Я пробовал 3 подхода.
A.
- html template and javascript to render data placed in the view html.erb
- method to get json data placed in the helper
<script type="text/javascript">
var data= <%= helper_method %>;
</script>
Проблема: как кэшировать данные JSON?
B.
- html template and javascript to render data placed in the view html.erb
- method to get json data is a controller action
def footer
expires_in(4.hours)
render :json => { calculated_data }
end
- ajax request in javascript
$.ajax({
type: "GET",
url: "<%=footer_path %>",
success: function(data){
render json data in html template
}
});
Проблема: второй запрос отправлен на сервер ...
C.
- html template and javascript to render data placed in the view html.erb
- method to get json data is a controller action
def footer
expires_in(4.hours)
render :json => { calculated_data }
end
- data in javascript
<script type="text/javascript" src="<%=footer_path %>">
</script>
Проблемы: как передать результат этого сценария в переменную, которую я могу использовать в JavaScript, который отображает данные в шаблоне?
В случае B иC необходимо включить в контроллер помощники (методы для вычисления данных json), что является довольно уродливым решением.
Каким должно быть правильное решение для этого?Какой подход подходит для этих нужд?
Спасибо за все предложения.