Rails 3, JRubyAjax Частичное Refresh опросом в Rails 3, JQuery
Недавно я принял участие в быстром ходе аварии в JQuery, который включал немного частичного рендеринга AJAX. Это заставило меня подумать, могу ли я использовать это для опроса сервера Rails, используя setInterval()
, каждые x секунд, чтобы постоянно обновлять определенную часть моей страницы?
Проблема, с которой я сталкиваюсь, заключается в том, как я мог бы использовать метод $.get()
, чтобы захватить URL-адрес частичного и перезагрузить его с помощью load()
. Здесь начинается путаница - с использованием Rails 3, у меня есть частичное название «_microposts», отображаемое внутри div с «id =« gf »» (gf означает глобальный фид). Это происходит на моей домашней странице Rails, поэтому в этом случае URL-адрес будет «// localhost: 8080/home», а не URL-адрес частичного.
Вот мой начальный JavaScript/JQuery
<script>
$(document).ready(function() {
setInterval(function (e) {
var url = $.get("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @microposts }%>");
$('#gf').html('loading...').load(url);
},10000);
});
</script>
Это выглядит не так, и до сих пор, просто гасит свои _microposts частичных через 10 секунд (так setInterval работают, и это, безусловно, обновляя правильную область, просто с пустым пространством)
Edit: Думая о моей проблеме, я понял, что это похоже на обновление частично из события, например, нажатие кнопки или что-то. Единственное реальное различие - это «событие», которое должно вызвать эту функцию setInterval()
. Итак, мой пересмотренный JQuery код выглядит следующим образом:
<script>
$(document).ready(function() {
setInterval(function (e) {
$('#gf').html("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @microposts } %>")},
10000);
});
</script>
К сожалению сейчас, ничего не кажется, что происходит с точки зрения пользователя, а сервер, показывающий Ajax запрос каждые 10 секунд.
Так почему я не могу опросить обновления с помощью ajax и применить изменения к моим частицам _microposts? Есть $.get
правильная функция для использования в этом случае? Каким будет URL-адрес метода load()
при попытке перезагрузить частичный?
Спасибо,