gpt4 book ai didi

c# - 使用 Ajax 从服务器向客户端发送进度消息

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:19 25 4
gpt4 key购买 nike

我正在使用 UpdatePanel 触发按钮单击事件,这会将大约 100 多个文件保存在指定的文件夹中。我希望服务器向客户端更新有关正在保存的文件的状态和计数。

protected void btnSave_Click(...){    
var filesToSave = GetFilesToSave();
foreach(var fileToSave in filesToSave){
SaveProcessedFile(fileToSave);//It takes almost 30seconds to save a file
UpdateStatusOnClient(fileToSave); //Don;t know what should be done here???????????
}
}

我正在寻找“UpdateStatusOnClient”的一些实现,从那里我可以向客户端发送所需的消息,或者异步更新标签消息,以便客户端知道正在保存的文件的进度和状态。

谢谢。

最佳答案

没那么容易...您不能主动从服务器向客户端发送内容。只有客户端可以发出查询状态的请求。

现在您已经有一个正在运行的请求(单击按钮)。但这只有在保存了 100 个文件后才会完成。理论上,您可以通过写入响应来发送少量数据,然后刷新它以确保数据已传输。我从来没有尝试过,而且我不知道有哪个 Ajax 客户端可以处理这样的响应。

我会做的是:将当前状态保存在 ASP.NET session 对象中,然后在计时器上发出另一个 Ajax 请求以每隔 X 秒查询一次状态。请注意,执行此操作时按钮上的请求仍在运行(这可能会导致问题)。您可能希望改为触发异步操作。

关于c# - 使用 Ajax 从服务器向客户端发送进度消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1082500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com