- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在为网络创建一个名为 Engine1 的新游戏引擎。我目前已经制作了几个原型(prototype)。到目前为止,我已经能够:
我对自己的进步感到满意,但我似乎对在没有咨询 DOM 性能专家的情况下进一步进步感到不自在。
目前,当创建一个元素时,它会附加到一个 DOM 片段,我称之为“Shadow DOM”。这个“Shadow DOM”的 HTML 的每一帧都被复制并插入到页面主体(或当前 View 端口)中。
我这样设置是因为我可以在浏览器的一次重流中将所有内容添加到页面。
我担心的是,获得的性能将被重新排列浏览器内容的需要所抵消,即使仅更改了部分页面也是如此。
此外,事件绑定(bind)变得更加复杂。
有什么想法吗?
我应该使用“Shadow DOM”吗?
有没有更好的方法来渲染大量元素?
有没有办法只将“Shadow DOM”中的差异复制到浏览器主体?
最佳答案
替换大块的 DOM 可能代价高昂。通常,DOM 是出现瓶颈的地方。最好跟踪您正在修改和更新 DOM 的哪些部分。您可以在更新时转换为 DOM 的单独数据结构中执行此操作,也可以像您所说的那样使用影子 DOM。如果单独的更改很大,那么使用影子 DOM 可能是个好主意。如果它们很小(例如只更新文本值),那么使用单独类型的数据结构会更有意义。
无论哪种情况,您都需要第三个对象来跟踪更改。
我写了Cactus Templates很久以前。您可以使用它将 DOM 结构与域对象绑定(bind)在一起,让更新从任一侧传播到另一侧。它会自动将事件附加到指定的位置(域中的键值路径和 DOM 中的 html 类名)。它可能正是也可能不是您正在寻找的东西,但也许您可以从中获得一些想法。
关于javascript - 我应该在我的 Javascript 游戏引擎中使用 DOM 片段作为 Shadow dom 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132595/
以下代码: if (!(ep = engOpen("\0"))) { fprintf(stderr, "\nCan't start MATLAB engine\n");
我在谈论一些网络事物,例如 http://uservoice.com/ 你能推荐任何其他类似的服务、网站,或者可能是(甚至更好)一个现成的引擎来部署在自己的服务器上? 实际上,更多关于系统的问题,可以
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在寻找一个矩阵表达式解析器/引擎。例如, 3 * A + B * C 其中 A、B、C 是矩阵是一个典型的表达式。这应该类似于(单值)数学表达式解析器/引擎,但应该处理矩阵值和变量。我已经用谷歌搜
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
是否有基于 .net 的 cometd 引擎?比如 Ajax 推送引擎 那是免费和开源的吗? 最佳答案 轨道式 Orbited是一个 HTTP 守护进程,针对长期 cometd 连接进行了优化。它旨在
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在寻找支持以下功能的 haml javascript“端口”: 存储在文件中的模板。 JSON 输入。 支持“集合”[{Booking},{Booking},{Booking}] 进行迭代处理。
我在 IronPython 中托管 IronPython。我没有找到使用等效的命令行参数初始化它的方法:-X:FullFrames . 我的代码有点像这样: import clr clr.AddRef
我想将我工作的公司的所有松散信息整合到一个知识库中。 Wiki 似乎是一种可行的方法,但大部分相关信息都隐藏在 PST 文件中,并且需要很长时间才能说服人们将他们的电子邮件(包括附件)手动翻译成 Wi
我已经使用缓存的 flutter 引擎 flutter 到现有的 native 应用程序(添加到应用程序)中。 override fun onCreate(savedInstanceState: Bu
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在使用 Django Cassandra我已经定义了我的模型,我可以用它来命名一个表: class Meta: db_table = "table_name" 但是,Cassand
类似于 NoSQL 数据库,但适用于 OLAP。当然是开源的:) 编辑: OLAP 引擎在幕后使用关系数据库。例如 SAPBW 可以使用 Oracle 等。我的意思是一个没有这个底层关系数据库的 OL
我正在使用以下片段来 enable Razor templating in my solution (在 ASP.NET MVC3 之外)。是否可以轻松实现布局? 背景资料: 我在这一点上(模板编译成
我们目前使用闭源知识库解决方案,所见即所得创建文章是TinyMCE(看起来可能是修改/简化的)。 他们目前根本不允许更改它(添加插件等,除非您可以以某种方式注入(inject)插件)。 我确实拥有对
我正在评估我们的高性能电信应用程序的 BPEL 引擎,但性能似乎很差。我们评估了 Apache Ode、SunBPEL 引擎、Active BPEL 等。您知道任何更快的 BPEL 引擎实现或 C/C
Elastic / Lucene真的需要在文档中存储所有索引数据吗?您难道不就通过通过传递数据,以便Lucene may index the words into its hash table并为每个
我是 3D 游戏新手?我正在使用 Libgdx。如何计算像 Tetromino Revolution 游戏这样的透视相机的参数?请给我任何想法。 看图片:http://www.terminalstud
我是一名优秀的程序员,十分优秀!