额外的$(…)调用是坏的
Are extra $(...) calls bad?
本文关键字:调用 更新时间:2023-09-26
如果我有代码下拉一个jQuery对象,然后对它进行一些进一步的调用
$("a.postSyncLink").click(function () {
var resultsTarget = $("span", $(link).parent().next());
resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");
$.get($(this).attr("data-url"), function (returnVal) {
resultsTarget.text(returnVal);
});
});
它被认为是坏的做法,随后(和不必要的)包装该对象在jQuery函数?jQuery会优化这样的多余调用吗?
$("a.postSyncLink").click(function () {
var resultsTarget = $("span", $(link).parent().next());
$(resultsTarget).html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");
$.get($(this).attr("data-url"), function (returnVal) {
$(resultsTarget).text(returnVal);
});
});
如果它们没有被用来克隆原来的jQuery对象,那么是的,它是坏的:
http://api.jquery.com/jQuery/cloning-jquery-objects
传递给jQuery
的jQuery对象被克隆,这是我不会浪费的处理器时间。
当存储对jQuery对象的引用时,我发现用$
作为变量名的前缀很有用,这有助于我记住它是一个jQuery对象,并且不需要重新包装:
$("a.postSyncLink").click(function () {
var $resultsTarget = $("span", $(link).parent().next());
$resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");
$.get($(this).attr("data-url"), function (returnVal) {
$resultsTarget.text(returnVal);
});
});
这会影响性能,因为每次都要创建新的jquery对象。
尽量避免。
创建jquery对象并使用它
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 同步调用,直到用户通过angular验证为访问者