我怎么能每隔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秒刷新一次图像,这重要吗?
创建一个带有属性[WebMethod]标记的公共静态方法,并对该方法使用AJAX调用。示例:如何使用JQuery Ajax调用从web方法发送和检索数据?