javascript - 我可以通过不在每次需要访问元素时都调用 jQuery 来节省开销吗?

标签 javascript jquery html performance

假设我有这段代码:

$('#myBox').css('background', 'grey');
$('#myBox').click( function(e){ console.log( 'Box clicked' ); });
$('#myBox').html(' Just a test text ');

目前我所知道的是,我在每一行搜索一个带有 myBox ID 的元素。 问题:当我有多个对 HTML 元素的引用时,我是否会从变量创建中获益?

或者我每次访问它时,变量仍然会搜索关联的元素吗? 示例:

var $myBox = $('#myBox');

$myBox.css('background', 'grey');
$myBox.click( function(e){ console.log( 'Box clicked' ); });
$myBox.html(' Just a test text ');

最佳答案

var $myBox = $('#myBox');

效率更高,但当 '#myBox' 动态变化时可能会更糟。如果你保存 var $myBox 而不是 '#myBox' 更改你将不得不手动重新分配 var $myBox 这对于大型应用程序来说真的很麻烦.一般来说,我会说您最好将此类优化保留在一个功能的范围内,而不是整个应用程序。

plunkr 中有一个非常简单的示例.更现实的情况是内容根据某些 API 调用发生变化。

关于javascript - 我可以通过不在每次需要访问元素时都调用 jQuery 来节省开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46954824/

相关文章:

javascript - 使用 backbone.js 在外部 api 上获取、放置和删除请求

javascript - 最后的行(尚未执行)如何影响代码的开头?为什么它会抛出不正确的错误?

javascript - 为什么这适用于 Firefox 而不适用于 Chrome 或 IE?

javascript - 带有 ReactJS 的工具提示 div

javascript - 同时创建带有文本的元素

javascript - 使用 jQuery 将行添加到表中两次

javascript - 检查可见 Div 不起作用?

javascript - Jquery, ajax, javascript - 通过 id 获取元素

html - CSS、HTML 或 Jquery - 滚动条样式

html - Gravatar 干扰 CSS 样式