在设计 html 界面元素时,DOM 根据某些事件显示/隐藏是一个非常常见的场景。我的问题很简单,但每次遇到这个问题时,我总是想知道:将元素硬编码在 html 中并简单地切换显示属性(例如使用 .show/.hide)或动态添加/删除它们是否“更好”根据需要通过JS?两者的实现都很简单,但我忍不住想知道它们如何比较,以及使用其中一种相对于另一种是否有任何优点/缺点。
在某些情况下,例如在多个地方逐字使用同一个元素时,动态创建 DOM 似乎是有意义的,但另一方面,理论上对它们进行硬编码更易于维护,因为您可以四处移动 DOM并根据需要更改它们,只要 jQuery 的选择器仍然相同,它们就会按预期工作。一般来说,从设计师的角度来看,硬编码似乎是可行的方法,但我期待着一些想法,也许我在这里可能会忽略的事情。
编辑:“硬编码”是指根本不通过 JS 插入的元素;也就是说,元素的位置已经在原始 html 标记的父文档中指定,而不是由 JS 指定。
如果你有一个包含数百个非常简单的子元素的容器div,如下所示:
<div id="stuffContainer" class="item-container">
<div class="single-item"></div>
<div class="single-item"></div>
<div class="single-item"></div>
<div class="single-item"></div>
<div class="single-item"></div>
<div class="single-item"></div>
[...]
</div>
Run Code Online (Sandbox Code Playgroud)
会以任何(有意义的)方式为每个单元素包含一个唯一的id损害(客户端)性能,无论是渲染,javascript还是内存明智?
为什么我要问:我可能不时需要参考具体项目,我想弄清楚我是否应该提前预先计算出我需要选择哪些项目,给他们提供ID并将其余部分留下来,或者只是将id分配给所有这些,这将使过程更加直接,但我想知道这可能是某种矫枉过正.
如果有人可以谈论现代浏览器如何处理它以及为什么它在浏览器呈现和管理DOM方面不会产生影响,那么奖励积分(如果我能真正给予它们).
首先我要说的是我的服务器管理经验是有限的,所以如果我做出可能看似奇怪的假设,请原谅我.
我已经为谷歌浏览器编写了一个扩展程序,我想测试它在连续运行数天后的稳定性,但不幸的是我无法访问我可以全天候离开的个人电脑或笔记本电脑.所以我的想法是用ubuntu设置EC2微实例,然后安装ubuntu-desktop和vnc服务器,最后通过vnc连接到实例,访问图形桌面界面,安装谷歌浏览器,添加我的扩展,然后让它跑到那里.
这听起来可行,还是一个愚蠢的想法?我可能遇到的潜在限制是什么?
如何在本地网络上的测试服务器中使用Google的reCAPTCHA?
根据文档:
默认情况下,所有键都可在“ localhost”(或“ 127.0.0.1”)上使用,因此您始终可以在本地计算机上进行开发和测试。
但是,我的虚拟机位于非本地主机本地IP(192.168.XXX.XXX)上,添加“本地主机”或“ 127.0.0.1”似乎不起作用(验证码显示无效的域错误)。有没有办法解决?