Rails 3 + jQuery: загрузка div на интервале не работает - PullRequest
0 голосов
/ 07 ноября 2010

Моему приложению Rails нужно каждую минуту получать обновленный счетчик с сервера.

Я пытаюсь, чтобы таймер javascript перезагрузил определенный div, где я отображаю этот счетчик.

    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js", "application", "refresh-timer" %>

В конце вы заметите, что я включаю свой файл refresh-timer.js, который представляет собой всего один вызов:

$(document).ready( function(){ 
setInterval(function(){ $('refreshable').load('/refreshable'); }, 3000);})

Этот «обновляемый» объект соответствует этому в моем представлении status.html.erb:

<div class="main">
   <div id="refreshable">
       <%= render :partial => 'refreshable' %>
   </div>

Да, есть еще кое-что в "основном" div, но интерес представляет обновление # div.

Так как javascript загружается / обновляется, в моем маршрутах .rb я создал соответствие:

  match "refreshable" => "events#refreshable"

Хотя я сомневаюсь, что это абсолютно правильно, я пытаюсь упростить вещи, чтобы выяснить, почему таймер javascript не вызывает действие.

Для проверки того, что мой jQuery был настроен правильно, я заменил внутреннюю часть функции setInterval вызовом оповещения. Это работало нормально: каждые три секунды появлялось предупреждение. Я также исследовал страницу в инструментах разработки Safari - здесь не сообщается об ошибках javascript, нет посторонних ошибок кодирования html - все это очень чисто (и довольно просто, когда я пытался это выяснить).

На данный момент, как запасной вариант, я добавил мета-вызов для обновления http каждые 10 секунд. Который позволяет мне видеть в моем файле development.log, что это единственный вызов, поступающий из браузера в приложение.

Мне бы больше всего понравились советы по устранению неполадок для javascript / jQuery. Мои нынешние попытки провоцировать события просто так, чтобы что-то не получилось и предоставить доказательства того, что что-то идет не так, также не работают!

1 Ответ

1 голос
/ 07 ноября 2010

Ваш селектор jQuery неправильный.Измените это:

$('refreshable')

На это:

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