如何在页面部分进行实时更新?

时间:2010-05-08 02:24:52

标签: c# asp.net javascript ajax

我需要刷新页面的各个部分,以便在有新数据时进行更新!我该怎么办?用jquery?

的示例:

5 个答案:

答案 0 :(得分:2)

是的,jQuery非常适合这一点。看看这些方法:

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

答案 1 :(得分:1)

基本的AJAX通常不需要jQuery。一个简单的例子如下:

liveSection = document.getElementById('latest-news');
request = new XMLHttpRequest;
request.open('GET', '/news-ajax', true);
request.send(null);
request.addEventListener('readystatechange', function() {
  if (request.readyState == 4 && request.status == 200)
    liveSection.innerHTML = request.responseText;
}, false);

答案 2 :(得分:0)

如果您使用的是Asp.NET,为什么不使用UpdatePanel?它简单可靠。

修改

我只是重新阅读了您的问题,并且看起来(根据您的措辞),您希望在服务器上的数据发生更改时更新用户的网页。我只想确保您了解在Web应用程序中,服务器无法触发浏览器执行任何操作。服务器只能响应浏览器请求,因此您需要让浏览器定期轮询服务器。

答案 3 :(得分:0)

我创建了一个简单的例子(使用jQuery)来帮助你理解需要发生的事情的细分,这些是:

1 - 使用Javascript setTimeout定期轮询服务器(通过ajax),检查加载到浏览器中的内容是否为最新内容。我们可以通过获取最新的项目ID或其他任何内容并将其与变量进行比较来实现这一点,该变量在首次加载页面时已初始化。

2 - 如果项目ID不匹配(有点过于简单化),那么我们可以假设已经有更新,所以我们用某些页面中的某些内容替换某个元素的内容。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
    function getLatestStuff() {

        // fetch the output from a context which gives us the latest id
        $.get("isthereanupdate.aspx", function(response) {

            // we have the response, now compare to the stored value
            if(resp != lastItemId) {

                // it's different, so update the variable and grab the latest content
                lastItemId = response;
                $("#latestStuffDiv").load("updates.aspx");
            }
        });
    }

    $(document).ready(function() {

        // the value which initializes this comes from the server
        var lastItemId = 7; 
        setTimeout(getLatestStuff, 10000);
    });
</script>

答案 4 :(得分:0)

如果您想在有新数据时进行更新,您应该查看comet或pubsubhubbub。 jQuery可以帮助您以漂亮的方式显示数据,但是您需要在服务器端编写内容来发送数据。