GUI 和现代浏览器文本区域上可编辑文本渲染的效率

问题描述 投票:0回答:0

在屏幕上渲染文本使其可编辑在我看来是一项微妙的操作。 通常这对于优秀的文本编辑器来说不是什么大问题,因为现代处理器已经变得更快、更高效了,因为现代处理器已经变得更快、更高效了。然而,当需要渲染大量文本时,这就开始出现问题。

举个例子,经典的 Windows 记事本可能不会逐块加载并尝试加载整个文件文本内容并将其发送以一次性渲染,即使在中等大小的文件上也会导致 GUI 线程阻塞。

如果要通过缓冲区读取文件,并且在每次读取时发送该文本以呈现并清除缓冲区本身以供下一次读取,它会变得明显更快,并且 RAM 效率更高——如果进程在另一个线程上运行,则GUI 甚至不会阻塞,整个过程更加顺畅。

我想在某种 GUI 文本区域中的一堆文本中间输入一些文本,引擎盖下的实现将是某种形式的

memmove
移动右侧内容以腾出空间,同时只更新屏幕上的可见部分。这是一个正确的想法吗?

在 HTML 和 JavaScript 的情况下(例如在

textarea
中),有些人通常执行字符串划分,将内容附加到第一部分,然后附加到最后一部分并将整个结果字符串
=
设置为
textarea.value
表面上看起来效率很低。

这个浏览器文本更新过程是否像我看起来的那样低效?浏览器是否在内部实现了这些对内部 HTML 的直接分配?

javascript performance user-interface in-memory text-rendering
© www.soinside.com 2019 - 2024. All rights reserved.