如何使用ASP.NET自动刷新网页?

时间:2009-03-16 23:38:10

标签: asp.net-2.0 refresh

我有一个可以“模拟”实时视频的asp.net应用程序。我从mysql数据库中获取了多张图片。

问题是如何在网页上显示。我每张照片刷新页面1秒,结果是图片不连贯和闪烁。

    Response.AppendHeader("Refresh", "1")

如何以每秒4次的速度刷新页面?或是否有任何实施以大陆方式显示。

如果你愿意回复我真的很感激。美好的一天(^ _ ^)......

这是我用来从数据库中读取图像的脚本。

如果dr.Read那么    dr.Read()    Response.ContentType =“image / jpeg”'获取或设置输出流的类型    Response.BinaryWrite(dr.Item(“file”))'将二进制字符流写入                                            http输出流 其他    Response.Write(“当前没有活动的网络广播。”) 万一   dr.Close()

5 个答案:

答案 0 :(得分:3)

create a javascript method to change the image using xmlhttpobject and recursively set a timer


         function Timer() {

             setTimeout("getImage(['imageContainer1'])", 200);
             t = setTimeout("Timer()", 100);
                       }

        function getImage(params) {
            var request=getXMLhttpObject();
            makeRequest("ajax/ObtainImage.aspx?name='myimage'+param[1]+'.jpg",request,  imageResponseHandler(request, params));

                   }

    function getXMLhttpObject() {

            return  (navigator.appName == "Microsoft Internet Explorer")? new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
                              }

 function makeRequest(url,request, Handler) {

             request.open("GET", url, true);
             request.onreadystatechange = Handler;
             request.send(null);

         }


    function imageResponseHandler(request,params) {
             return function() {
                 if (request.readyState == 4)
                     document.getElementById(params[0]).src = request.responseText;
             }

         }

答案 1 :(得分:1)

我要么使用一些Javascript / Ajax来更改内容或元刷新(对于快速刷新来说,这不是最好的)。

答案 2 :(得分:1)

也许你需要考虑在页面上加载多张图片并使用javascript在它们之间循环。您可以使用AJAX获取图片,而不是刷新页面。

答案 3 :(得分:1)

如果您真的想要模拟视频,则需要每秒至少显示15张图片(15fps)。每秒发出那么多请求并不是一个好主意。

如果你绝对必须这样做,我建议先显示“缓冲”图片,然后再显示它们,如果可能的话,分批取出:

buffer = []       // cache loaded images
bufferSize = 30   // load 30 images before playing

function loadImage(src) {
   var img = new Image()
   img.src = src
   buffer.push(img)
}

function animate(target) {
   if (buffer.length > 0) {
      var img = buffer.shift()
      document.getElementById(target).src = img.src
   }
}

function bufferImages() {
   for (var i=0; i<bufferSize; i++) {
      loadImage('/ajax/ObtainImage.aspx?name=img')
   }
}

setInterval("animate('imgTarget')", 65)  // should give us about 15fps 
setInterval("bufferImages()", 1000)  // every second

答案 4 :(得分:0)

将此添加到html文档的头部。 不是最有效的方式,但它会起作用。

<meta http-equiv="refresh" content=".25" />