我正在构建一个严重依赖 svg 的 Web 应用程序。作为参考,我正在使用 raphael js 库来处理所有这些。
在这种特殊情况下,我实现了一些模仿滚动条并在屏幕上移动一堆 svg 功能(约 500 个元素)的东西。这些功能的一部分是<text>
(~100)个元素。其他元素包括<rect>
和<image>
元素<path>
。
所以,我注意到我的应用程序在我的笔记本电脑上并不是很活泼,而且由于速度的原因,在 ipad 上处理起来很烦人。但是,只要在滚动过程中删除或忽略文本元素,它就会立即达到不错的速度。
我尝试进行一些速度测试(非常粗略的测试,使用new Date().getTime()
)并发现移动除元素之外的所有元素需要大约 10 毫秒<text>
,但是包含元素时需要大约 120 毫秒<text>
。
我相信这是因为每个字母都呈现为矢量形状,并且需要大量的处理能力来计算如此复杂的结构究竟阻碍了什么。
是否可以只嵌入文本,因此文本呈现为光栅图形,而不是形状?或者以任何其他方式提高呈现文本的性能?
我不需要背景透明度,也不使用任何花哨的字体。