Как отправить данные на веб-страницу, как только данные будут добавлены в базу данных - PullRequest
2 голосов
/ 03 сентября 2011

Я пытаюсь сделать так, как на первой странице foursquare.com (автоматическая прокрутка канала). И я нашел, как сделать это здесь . Но у меня есть другая проблема. Я хочу добавить новый канал, как только некоторые данные будут добавлены в базу данных (например, foursquare), но я не знаю, как это сделать. Я полагаю, что мне нужно каким-то образом отправлять данные из базы данных на страницу или читать из базы данных каждую секунду. Как лучше всего это реализовать?

Хорошо, я решил звонить в базу данных со следующим кодом каждые 5 секунд. Мне просто нужно подтверждение, что это действительный и безопасный способ сделать это, пожалуйста?

function init() {
        setInterval(function () {
            $.post('http://localhost:2993/home/test', function (data) {
                smoothAdd('scroller', data);
            });
        }, 5000);    

Ответы [ 5 ]

5 голосов
/ 03 сентября 2011

Посмотрите на SignalR: https://github.com/SignalR/SignalR, что облегчает длительный опрос.

3 голосов
/ 03 сентября 2011

Вам нужно инициализировать интервал и попытаться получить данные на сервере:

window.setInterval(function () {
    $.post('foursquare.com/newfeeds', function (data) {
        $('#scroller').prepend('<li>' + data + '</li>');
    });
}, 5000);

также 1 секунда слишком часто. Используйте 5 или даже 10 секунд

0 голосов
/ 12 октября 2011

Предполагая, что вы говорите о SQL Server (прекратите чтение, если вы этого не сделаете), SQL Server Query Notifications будет вам полезен для отслеживания этих изменений, а затем что-то вроде SignalR для уведомления клиенты.

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

0 голосов
/ 13 сентября 2011

Если вы наблюдаете за четырьмя квадратными фидами, он просто поворачивает новости, выбирая 50 или 100 строк за один снимок. Периодически проверяет наличие новых новостей и не часто.

Вы должны проверить Sqlcachedependency, который будет лучшим вариантом для этого. Если у вас есть 1000 пользователей на вашем сайте, и если вы выбираете данные по 5 секунд каждый для пользователей OL, подсчитайте, сколько раз он попадет в вашу базу данных для отображения последних новостей.

0 голосов
/ 03 сентября 2011

Раньше мы делали это в нашей системе онлайн-торговли, где у нас был вид сетки, заполненный курсами акций, и нам нужно было поддерживать эту сетку в актуальном состоянии. Что мы сделали, так это то, что каждые две секунды мы отправляем AJAX-запрос на сервер, сервер будет возвращать новые данные в виде строки JSON, а затем на стороне клиента мы использовали чистый javascript для обработки возвращаемых данных и добавления их в сетку или обновить существующие записи.

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