如何消除浏览器闪烁?
我正在将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
设置现有
Document.Body
的InnerHTML
,而不是每次都重新加载新文档。Instead of reloading a new document every time, set the
InnerHTML
of the existingDocument.Body
.在您的
标记中添加以下两行
即可正常工作。
Add the following 2 lines in your
<Head>
tagit is working properly.
我
在我的 html 代码中添加了:并且它没有闪烁。我不知道它是如何工作的(我不知道html),只是花了一些时间谷歌搜索解决方案。
这很奇怪,因为我可以替换:
表达式(document.execCommand("BackgroundImageCache", false, true))
到其他任何东西,它仍然有效。
I added:
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.