Как обновить пароли Rails через заданные интервалы с помощью $ .ajax ()? - PullRequest
0 голосов
/ 26 февраля 2012

Я создаю своего рода клон CoverItLive в Rails 3.1 и хочу, чтобы поток комментариев автоматически обновлялся. Я использую частичное в представлении для отображения комментариев. Существует много информации о том, как делать UJS и AJAX с формами, кнопками или ссылками в Rails, но я не могу найти конкретных примеров того, что мне нужно сделать.

Я предполагаю, что .ajax() - лучший подход, но я никогда не использовал его раньше и не уверен, нужно ли мне предоставлять .js.erb файлы при использовании этой конкретной функции? Могу ли я просто заставить контроллер отправить JSON обратно клиенту и перейти оттуда, или есть лучший подход в рельсах?

Это то, о чем я думаю до сих пор, основываясь на том, что я прочитал на другой вопрос:

setInterval(function() {
    $.ajax({
        type: 'GET',
        url: ''<%= comments_path(:json) %>'',
        data: {
            data: "comments_data"
        },
        cache: false,
        success: function(result) {
            if (result == "true"){
                alert("true");
            }else{
                alert("false");
            }
        }
    });
}, 3000);

1 Ответ

0 голосов
/ 26 февраля 2012

В качестве альтернативы вы должны заглянуть в Private Pub , драгоценный камень, который Райан Бейтс поставил вместе. Смотрите скринкаст об этом на railscasts .

Проблема с вашим решением в том, что теперь часто ваш сервер подвергается ненужной атаке, я думаю, это зависит от количества одновременных пользователей, которые вы будете просматривать на этой странице.

если вы пойдете по маршруту, в файле .js.erb может быть что-то вроде этого:

$('#id_of_area_to_replace').html("<%= escape_javascript(render"comments/index") %>")

Это заменит всю область, иначе вы можете просто добавить новые комментарии к нижней части области

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