我怎么能每隔x秒用javascript调用一个c#函数呢?

本文关键字:一个 函数 怎么能 秒用 调用 javascript | 更新日期: 2023-09-27 18:18:03

我有一个将图像从IPcamera保存到文件流的项目。我有另一个项目,从文件流中获取图像,并将其保存为jpg格式,然后在webform中显示图像。我添加了一个javascript脚本,每x秒刷新一次图像,但问题是新图像只有在页面加载时才能保存。这是因为我把c#代码放在了"Page_Load()"函数中。我想知道是否有一种方法可以在c#中创建一个函数,该函数具有保存图像的代码部分,然后在我刷新图像时每隔x秒调用该函数?因为现在没有保存新的图像它只是刷新到相同的图像。我做了一个代码,刷新整个页面每x秒,但我觉得这种方式会更好。我用的是visual studio 2010。

下面是第二个项目的c#代码:
namespace PlayVideo 
public partial class Video : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
     string saveTo = @"place to save";
        FileStream writeStream = new FileStream(saveTo, FileMode.Create, FileAccess.ReadWrite);
        using (FileStream fs = File.Open(@"Place where file is saved", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
        {
            ReadWriteStream(fs, writeStream);
        }
     Response.Clear();
     Response.TransmitFile("~/images/test.jpg");

     }
 // readStream is the stream you need to read
// writeStream is the stream you want to write to
private void ReadWriteStream(Stream readStream, Stream writeStream) 
{
     int Length = 256;
     Byte [] buffer = new Byte[Length];
     int bytesRead = readStream.Read(buffer,0,Length);
     // write the required bytes
     while( bytesRead > 0 ) 
     {
        writeStream.Write(buffer,0,bytesRead);
        bytesRead = readStream.Read(buffer,0,Length);
     }
     readStream.Close();
     writeStream.Close();
 }
 }

查看器的代码。Aspx页面是:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="viewer.aspx.cs"        Inherits="PlayVideo.viewer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server"> 
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    </head>
    <body>
    <form id="form1" runat="server">
       <div style="height: 60px" id="div1"> 
       <img src="/video.aspx" id="the_image" alt="" /><br />
       <script type="text/javascript" language="javascript">
       function refreshImage() {
          $("#the_image").attr('src', 'video.aspx');
            setTimeout(refreshImage, x ms);
          }
       $(document).ready(function () {
         setInterval(refreshImage, x ms);
        })
   </script>
   </div>
   </form>
   </body>
</html>

有办法做到这一点吗?我读过一些关于客户端和服务器端的东西,但是因为我已经每隔x秒刷新一次图像,这重要吗?

我怎么能每隔x秒用javascript调用一个c#函数呢?

创建一个带有属性[WebMethod]标记的公共静态方法,并对该方法使用AJAX调用。示例:如何使用JQuery Ajax调用从web方法发送和检索数据?