javascript - 将巨大的图像 (5mb) 加载到 svg 背景中会导致像素化和性能问题

标签 javascript performance browser svg d3.js

我对 像素化 和 SVG 背景图像与 D3.js 的性能 有一些问题。

您已经可以在此处看到一个正在运行的示例:http://arda-maps.org/ages/first/在它仍然是 Alpha 之前,请不要分享。谢谢。

例子

所以让我们以为例。这也是它们稍后在浏览器中的样子: Tree image

如您所见,它们的质量可能不是最好的,但您几乎看不到任何像素。所以我使用了这张图片 (~5mb),正如你在上面的链接中看到的那样,当你点击实验室图标(在底部)并等待几秒钟时......你也可以在那里看到它们。

好吧,但是如果你放大你可以看到像素。并且感觉(与矢量 View 相比)非常滞后并且性​​能大幅下降。这是网站上该区域的 View : enter image description here

我还提到 Chrome 在他还没有完成背景 risizing 或其他什么之前几乎崩溃了。但在 Firefox 中它运行得很好。因此,请尽可能在 Firefox 中进行测试。

另一个子问题是,至少在 Firefox 中,在缩放步骤 7 到 19 中您看不到图像背景。但在矢量 View 中一切都很好。因为我没有改变任何东西,这是另一个问题。但是我找不到原因 =/

备选方案

我知道我可以使用平铺图像图形。但至少在 D3.js 中,这些很难甚至不可能与矢量 View 结合使用。我知道谷歌地图和其他人正在成功地做到这一点。但是他们不像我那样使用来自 topojson 的数据。

最后我想要一张可以在矢量和 ImageView 中查看的 map 。我也乐于接受任何有创意/古怪的想法 =)

非常感谢。

最佳答案

我真的不明白你的问题,但如果你在 SVG 中有深层次结构树,那么性能明智,你应该考虑使用 html5 Canvas ,因为它的性能效率更高。从你的问题中感觉这是主要问题。也许这不是最适合您的解决方案,但我认为您应该阅读最适合您的内容。 参见 https://msdn.microsoft.com/en-us/hh552482.aspx?f=255&MSPPError=-2147217396http://www.sitepoint.com/7-reasons-to-consider-svgs-instead-of-canvas/ SVG 和 Canvas 之间的优缺点。 Microsoft Virtual Academy 也为此开设了一章。

希望对您有所帮助!

关于javascript - 将巨大的图像 (5mb) 加载到 svg 背景中会导致像素化和性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002398/

相关文章:

javascript - React Js Axios Post 请求未从 Web api 接收返回正文

javascript - 为什么在此示例中 Javascript 中 'this' 的上下文没有改变?

javascript - 如何将 mired 转换为 RGB 或在 css 中显示 mired?

javascript - Web Streams 和 Node.js Stream API 之间的区别

C# WebBrowser 控件拦截从 PHP 脚本在新窗口中下载

javascript - 从 Bootstrap 轮播中的特定幻灯片开始

java - 在整个运行时保持 JDBC-MySQL 连接并且只在执行结束时关闭它是否有意义?

c++ - 程序占用太多时间

MySQL 构造查询

javascript - 浏览器中的 Microsoft Monaco Editor 获取行的值