如何消除浏览器闪烁?

发布于 2024-11-24 08:50:51 字数 834 浏览 1 评论 0原文

我正在将 WebBrowser Control 用于我的聊天应用程序。每次添加用户消息时,它都会用新内容刷新 WebBrowser。而且效果很好。 但是当我在 html 代码中添加背景后,每次刷新时它都会开始闪烁。 这是我的 Navigate() 方法:

public void Navigate(string url)
{
    string text = File.ReadAllText(url);
    if (bg.Length > 0)
        webBrowser1.DocumentText = text.Replace("%bg%", "background=\"" + bg + "\"");
    else
        webBrowser1.DocumentText = text;
}

这是我的 html 文件头:

addText("<html>\r\n<head>\r\n<meta charset=utf-8>\r\n</head>\r\n<body %bg% bgproperties=\"fixed\" onload=\"window.scrollTo(0,2147483647);\">\r\n<span style=\"line-height: 20px\" style=\"font-family: Arial; font-size: 14px\">\r\n<font color=black>", NewLine.No);

每次用户添加一条消息时,我的程序都会将其添加到 html 文件的末尾并执行 Navigate() 方法。

您有消除闪烁的想法吗?

I'm using WebBrowser Control for my chat application. Every time it adds user's message - it refreshes WebBrowser with its new content. And it works good.
But after I added a background in html code it started to flicker every time it refreshes.
Here's my Navigate() method:

public void Navigate(string url)
{
    string text = File.ReadAllText(url);
    if (bg.Length > 0)
        webBrowser1.DocumentText = text.Replace("%bg%", "background=\"" + bg + "\"");
    else
        webBrowser1.DocumentText = text;
}

and this is my html file header:

addText("<html>\r\n<head>\r\n<meta charset=utf-8>\r\n</head>\r\n<body %bg% bgproperties=\"fixed\" onload=\"window.scrollTo(0,2147483647);\">\r\n<span style=\"line-height: 20px\" style=\"font-family: Arial; font-size: 14px\">\r\n<font color=black>", NewLine.No);

Every time user adds a message, my program adds it to the end of html file and executes Navigate() method.

Have you got any ideas to remove flicker?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

貪欢 2024-12-01 08:50:51

设置现有 Document.BodyInnerHTML,而不是每次都重新加载新文档。

Instead of reloading a new document every time, set the InnerHTML of the existing Document.Body.

£冰雨忧蓝° 2024-12-01 08:50:51

在您的 标记中添加以下两行

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)">

即可正常工作。

Add the following 2 lines in your <Head> tag

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)">

it is working properly.

献世佛 2024-12-01 08:50:51

<meta http-equiv='Page-Exit' content='filter: expression(document.execCommand("BackgroundImageCache", false, true))'>

在我的 html 代码中添加了:并且它没有闪烁。我不知道它是如何工作的(我不知道html),只是花了一些时间谷歌搜索解决方案。

这很奇怪,因为我可以替换:
表达式(document.execCommand("BackgroundImageCache", false, true))
到其他任何东西,它仍然有效。

I added:

<meta http-equiv='Page-Exit' content='filter: expression(document.execCommand("BackgroundImageCache", false, true))'>

to my html code and it's not flashing. I don't know how it works (I don't know html), just spent some time googling for the solution.

And it's strange, because I can replace:
expression(document.execCommand("BackgroundImageCache", false, true))
to anything else and it still works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文