как обновлять вид каждые пять минут в рельсах - PullRequest
0 голосов
/ 28 января 2010

У меня есть кнопка StartMonitor, и после того, как пользователь нажмет эту кнопку, я начну проверять текущую доступную память каждые 5 минут. Это означает, что представление должно обновляться каждые 5 минут, чтобы отображать все данные, полученные до настоящего времени . Я могу получить данные, но я не знаю, как обновить представление. Что бы вы порекомендовали? Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Вам придется активно опрашивать это у клиента. После отображения представления соединение с клиентом теряется. Вы не можете со стороны сервера передавать информацию в браузер.

Используйте JavaScript или метатег с «перезагрузкой», чтобы обновлять представление каждые 5 минут. Например

<meta http-equiv="refresh" content="300;url=/controller/action/id">

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

Я предлагаю обновить div с помощью AJAX и обработать событие ошибки самостоятельно (проигнорируйте его, повторите попытку, сообщите пользователю. Все, что соответствует вашим потребностям). Это должно быть чистое решение.

periodically_call_remote(:url => 'update', :frequency => '300', :update => { :success => "ok", :failure => "error" }
0 голосов
/ 28 января 2010

У вас есть несколько способов сделать это

один - это то, что предлагается "фиш"

и еще один будет использовать обновленный Ajax (вы можете сделать это с помощью библиотеки ajax по умолчанию для rails)

пример кода будет,

'message_div',: url => {: action => 'message'}, :quency => '20'%>

где 'message_div' - это обновляющий div action -> это действие контроллера и частота обновления частоты в секундах

  • примечание - вы очень часто включаете библиотеку javascript по умолчанию для rails

надеюсь, это поможет

ура, Самира

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...