Im пытается создать систему, которая информирует пользователя о любых новых личных сообщениях, метод индекса контроллера сообщений создает переменные экземпляра @messages и @newmessages, оба они используются в index.html .erb, и я хочу сделать так, чтобы index.js.erb создавал окно флеш-сообщений на моем сайте.Отправка запроса на Javascript в rails
Ive получил JQuery, чтобы запустить функцию каждые несколько секунд, функция, которая получает ПУСК
function checkagain(){
//Start a Timer, dont want it bombarding the server with constant requests
$.timer(10000,function(){
$.getScript("/messages.js");
//RECURSE, see you again in 10 seconds
checkagain();
});
}
$ .getScript не кажется, чтобы сделать его запустить код на index.js.erb который просто:
alert("RESPONDING");
Я не могу заставить его запускать код на этой странице.
Я обнаружил, что /messages.js что не возвращает JavaScript, так же, как index.html.erb
индекс действие контроллера:
def index
@messages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '1'")
@newmessages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '0'")
end
Вне темы, но то, что вы делаете, не является рекурсией. Комментарий вводит в заблуждение. –
он находится в новой версии этой функции, по существу, то же самое, но передает более высокую задержку в следующий вызов функции, а затем останавливается, когда задержка превышает 10 минут. – Arcath
. Дело в том, что ни checkagain, ни анонимная функция не находятся в стеке дважды в то же время; следовательно, нет рекурсии. –