Как я могу перезагрузить страницу, когда ее редактирует другой пользователь? - PullRequest
1 голос
/ 16 апреля 2011

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

Так, скажем, Боб находится во Флориде и редактирует статью на сайте. Джилл в Сиэттле не увидит изменений, пока не перезагрузит страницу. Как я могу обновить предмет Джилл, когда Боб редактирует его?

Я использую rails, jquery, postgresql на heroku.

РЕДАКТИРОВАТЬ: Если страница содержит 200 элементов, я бы не стал постоянно проверять, изменился ли каждый из них.

Ответы [ 4 ]

1 голос
/ 16 апреля 2011

Вам необходимо либо периодически запрашивать у сервера $ .ajax, чтобы проверить, был ли элемент изменен после загрузки страницы, либо использовать комету

0 голосов
/ 16 апреля 2011

Вы можете начать играть вокруг jquery ajax, который действительно мощный

http://api.jquery.com/jQuery.ajax/

0 голосов
/ 16 апреля 2011

Вы можете создать скрипт, который возвращает «1», когда страница изменилась, и «0», если она не изменилась. Затем вы делаете что-то подобное с jquery:

setInterval(function() {
    $.ajax({
        'url': 'url_to_check',
        'method': 'GET',
        'data': {
            'pageid': pageidhere
        },
        'success':function(data) {
            if (data == '1') {
                location.reload();
            }
        }
    });
}, 5000);

где url_to_check - это URL скрипта, который проверяет необходимость перезагрузки определенного pageid. 5000 означает «проверять каждые 5 секунд»

0 голосов
/ 16 апреля 2011

То, о чем вы говорите, известно как Ajax (асинхронный javascript), который имеет возможность отправлять и получать пакеты с сервера без перезагрузки страницы. К счастью для вас, рельсы имеют встроенную возможность для AJAX. Я считаю этот очень хорошим уроком. Кроме того, я не могу найти его в данный момент, но есть очень хороший скринкаст, показывающий, как создать блог с ruby ​​на рельсах, и он также охватывает AJAX.

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