数据添加到数据库后如何将数据发送到网页

时间:2011-09-03 07:46:39

标签: javascript asp.net asp.net-mvc ajax asp.net-ajax

我正在尝试在foursquare.com的第一页上创建功能(Feed自动滚动)。我找到了如何制作它here。但我有另一个问题。我想在将一些数据添加到数据库后立即添加新的Feed(如foursquare),但我不知道如何制作它。我想我需要以某种方式将数据从数据库发送到页面或每秒从数据库读取。实现这一目标的最佳途径是什么?

好的我决定每隔5秒就用以下代码调用数据库。我只是需要一些确认,这是有效和安全的方法吗?

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

5 个答案:

答案 0 :(得分:5)

看看SignalR:https://github.com/SignalR/SignalR,这样可以轻松进行长轮询。

答案 1 :(得分:3)

您需要初始化间隔并尝试在服务器上访问数据:

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

也经常1秒。使用5秒甚至10秒

答案 2 :(得分:0)

我们曾经在我们的在线交易系统中这样做,我们的网格视图中填充了股票价格,并且需要使这个网格保持最新状态。我们做的是每两秒钟我们向服务器发送一个AJAX请求,服务器将以JSON字符串的形式返回新数据,然后返回客户端,我们使用纯javascript处理返回的数据并添加他们到网格或更新现有记录。

答案 3 :(得分:0)

如果你观察foursquare提要,它只是通过一次取50或100行来旋转新闻。它定期检查新消息而不是经常。

你应该查看Sqlcachedependency,这将是最好的选择。如果您的站点上有1000个用户,并且如果您为OL用户分别获取5秒的数据,请计算它将在数据库中显示最新消息的次数。

答案 4 :(得分:0)

假设您正在谈论SQL Server(如果您不是,请停止阅读),SQL Server Query Notifications可能会很好地监控这些更改,然后像SignalR那样通知客户端。

几年前我写了一个名为SQL Watcher的辅助库,可能对前半部分有帮助。