【问题标题】:Is there a way to "load" the browser but not display anything? CefSharp有没有办法“加载”浏览器但不显示任何内容?头孢夏普
【发布时间】:2019-05-09 10:06:55
【问题描述】:

我正在尝试创建一个基本上包含多个浏览器实例的程序(为了不共享缓存),并且在每个浏览器实例上,我需要打开一个网页并留在上面。

但是,正如您可能假设的那样,它会消耗大量的 RAM,并且还会对 CPU 造成太大压力。我的想法基本上是禁用所有“外观”并将其作为某种后台进程运行。基本上,模拟打开的浏览器但不显示任何内容,从而节省 RAM 和 CPU。

我不需要查看这些浏览器实例中发生了什么,我只需要打开它们并在启动时运行一些 Javascript。目前,我有这个程序,但是所有的浏览器实例都显示出来了,它占用了太多资源。我需要能够运行 50-60 个浏览器实例。

我正在使用 .Net 和 C# 以及 CefSharp(铬浏览器)开发它

有没有人有任何建议我可以在这件事上做些什么?

【问题讨论】:

  • 您可以使用 CefSharp.Offscreen 并告诉浏览器它已隐藏,因此它不会渲染帧
  • '我需要能够运行 50-60 个浏览器实例' => 我真的认为你需要退后一步考虑一下。这听起来真的像一个 X-Y 问题。您说您只需要他们在启动时运行一些 Javascript 并保持打开状态,但如果他们在启动时运行一些 Javascript,他们保持打开状态的目的是什么?
  • 这可能就是我要找的东西!我会试试@tolanj 我需要留在那些页面上,以便在那里有活动的套接字连接。只有这样,服务器才会将我视为“已连接”
  • 如果要求如您所说,拥有一个通过近乎透明的代理连接的 n 个浏览器池。在浏览器完成后让代理保持套接字连接。我确实很难理解为什么您需要 50-60 个打开且显然永久不活动的连接。

标签: c# chromium cefsharp


【解决方案1】:

感谢大家的建议!如果有人需要这样的东西,您可以使用无头版本的 cefSharp 浏览器。它对我来说几乎是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2017-02-07
    • 2017-06-14
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多