gpt4 book ai didi

c# - 在 WebControl 中使用 Response Flush

转载 作者:行者123 更新时间:2023-11-30 21:08:10 24 4
gpt4 key购买 nike

我想在 web 控件中使用某种逐步渲染,这是一个示例(没有按预期工作)

public class Price : WebControl
{

protected override void Render(HtmlTextWriter output)
{
HttpResponseBase response = new HttpResponseWrapper(new HttpResponse(output));

//Panel basePanel = new Panel() { ID = "basePanel" };
//Controls.Add(basePanel);
//var loaderImage = LoaderAnimation();
//Controls.Add(loaderImage);

System.Threading.Thread.Sleep(500);
Controls.Add(new LiteralControl("aaa "));
response.Flush();

System.Threading.Thread.Sleep(500);
Controls.Add(new LiteralControl("bbb "));
response.Flush();

System.Threading.Thread.Sleep(500);
Controls.Add(new LiteralControl("ccc "));

base.RenderContents(output);
}
}

这应该在每次刷新时呈现。也许这是一项糟糕的技术,但我喜欢这方面的一些建议。

最佳答案

您的方法可能不会按预期工作。如果你想要逐步渲染(我不是问为什么),你应该解决类似 AJAX 的问题.

涉及太多(网络、客户端和服务器端的缓冲、在浏览器中呈现,这非常依赖于当前元素以外的其他元素的结束标记等),您可以使用一种只需暂停生成的方法间歇性的内容。

如果您想在服务器上显示某个耗时较长的进程的进度,请让另一个后台线程完成这项工作,并让客户端每隔 X 秒轮询一次更新。 JSON 和 AJAX 是您的 friend ,您可以向用户显示缓慢增长的页面/内容。

这具有额外的效果,您可以先呈现整个页面(即包括 html 结束标记的有效 HTML),然后更新 HTML 页面中间的部分。

关于c# - 在 WebControl 中使用 Response Flush,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839293/

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