- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网站,每个页面上都有许多 jQuery 事件处理程序,所有这些都在一个大型 .js 文件中。
这意味着对于任何页面,大多数事件处理程序都是针对不存在且根本不会使用的 HTML。
这会影响我的表现吗?
编辑:例如,大多数事件处理程序都会执行如下操作:
$(".page").on("click", ".notes .add", function(){ ... });
因为.on()
适用于新元素,它是否总是会浪费处理能力,或者只有在ajax调用后DOM发生变化时才会生效?因此,为了进一步澄清我的问题,我想我应该将其分为两部分。
最佳答案
这很大程度上取决于标记,但一般来说,如果不使用不必要的事件处理程序,最好将其删除。
jQuery 事件使用 Sizzle 选择引擎附加到元素。这意味着对 $('a').click()
的调用仍然必须遍历整个 DOM 来搜索链接。由于您的元素不存在,因此不会绑定(bind)任何事件,但这并不妨碍 jQuery 必须搜索目标元素。减少 jQuery 工作量的一种方法是在绑定(bind)必要的事件之前测试已知元素(例如表单标记)是否存在。
if ($('form').size() > 0) {
// bind events for form here
}
如果使用 .on()
、.delegate()
或 .live()
持久化事件,情况会变得更糟这些将消耗更多资源,因为它们被设计为绑定(bind)到所有元素,包括尚未创建的元素。
关于jquery - 我是否应该担心附加大量不需要的事件处理程序/监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11837728/
我刚刚开始使用 data-* 属性来存储查看所需的自定义属性和值。例如 。 基于data-*我正在做一些操作(CRUD)。如果用户在客户端更改 data-* 属性值(即使用 firebug 和其他
我想知道是否有人可以指出正确的方向。我最近开始使用 LinqToSQL 并喜欢强类型数据对象等。 我只是在努力了解对数据库性能等的影响。例如,假设我正在开发一个简单的用户配置文件页面。该页面显示有关用
我正在开发一个有文本区域的 Angular 应用程序。此文本区域的内容随后用于填充输入文本的预览。所有这些都在客户端完成。我担心有人能够将代码注入(inject)我的应用程序,例如 /*So
我在一台机器上运行 CDH 5.6(Hadoop 2.6,HBase 1.0.0)。只有 Hadoop 和 HBase 在运行。 Hadoop 配置为复制因子 1,Hbase 运行在 HDFS 之上,
在 SO 和其他地方,如果没有人礼貌地指出最好使用参数化输入和存储过程,几乎不可能在示例代码中发布长连接的 SQL 指令。 最近的示例 here . 但是担心 Winforms 项目中的 SQL 注入
未受攻击的计算机上的 Web 应用程序在不安全的 WiFi 环境中容易受到 XSS、CRSF、sql 注入(inject)攻击和 cookie 窃取。 为了防止这些安全问题,有以下补救措施 sql注入
我在一个执行数值计算的库上工作了一段时间。它是用纯原生 C++ 编写的,直到现在我一直在使用简单的控制台应用程序来测试它的功能。 是时候在库的顶部构建一个 GUI - 以更好地显示结果表并以图形形式呈
我是一名优秀的程序员,十分优秀!