jQuery无限嵌套会影响性能吗?
Is jQuery Infinite nesting bad for performance?
// page load
InitTeacherLinks()
function InitTeacherLinks()
{
$(".open-ungraded-test").click(function()
{
$.post("class_viewer.php", {
_open_lesson_direct : 1
}, function(data)
{
$("#content_display").html(data);
InitGradingActions(test_taken_id); // Notice this Call
});
})
}
function InitGradingActions(test_taken_id)
{
$("#save_grading").click(function()
{
$.post("class_viewer.php", {
_save_graded_test : 1
}, function(data)
{
$("#content_display").html(data);
InitTeacherLinks(); // Is this Circular logic?
});
});
}
基本上,我有一个名为content_display
的div
,它显示了一系列测试。在我加载了完整的测试后,我必须使每个测试链接可点击。所以我在这个函数InitTeacherLinks()
中这样做,他们可以看到一个单独的测试。
用户可以退出测试,回到原来的测试列表。所以我必须调用父函数再次在子函数。
虽然这确实有效,但我注意到我经常这样做。这是坏的逻辑还是坏的性能?
注释:我只能想到一个可能的原因。如果我说错了,请纠正我。当单击save_grading
时,它有效地破坏了对原始(父函数)的引用,因此我们只是重新初始化它,而不是创建重复的引用。这样对吗?
我不认为代码有堆栈溢出问题,但看起来确实可能有错误。每次执行InitTeacherLinks()
时,一个新的点击处理程序被分配给.open-ungraded-test
。这意味着每次InitTeacherLinks()
运行时,在点击期间都有一个额外的ajax帖子,这可能很多。
至少从代码中看起来是这样的。这取决于文档的结构。
我最终没有改变任何东西,而是沿用了上面的内容。
因为每次元素被销毁时,点击事件都被解除绑定,这并没有创建一个无尽的循环(或Stackoverflow错误),这是我关心的。问题中的代码是正确的
相关文章:
- NodeJ中的注释会影响性能吗
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- javascript getAttribute是否会影响性能或触发布局
- Coffeescript 隐式返回对性能和副作用的影响
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 角度 1 路绑定不影响性能
- 数字精度如何影响 JavaScript 的性能,或者会影响性能
- ng-csp指令的性能影响
- 解除所有元素上的所有 jQuery 事件的性能影响
- Meteor 中的客户端渲染和光纤的性能影响
- 在计时器中持续访问 Cookie 的性能影响
- Node.js中未使用需求的性能影响
- Javascript-命名空间嵌套是否存在任何硬性限制(或性能影响)
- 对加载相关下拉列表的性能影响,最多约30000条记录
- 在一个应用程序中使用多个角度应用程序时的性能影响
- 1)对函数内部函数的性能影响2)多个条件下的顺序或流程
- KineticJS - KineticJS . node .listening()的性能影响
- 在Redux中切换到Immutable.js.性能影响是什么?对组件的影响是什么? '语法
- JavaScript base62编码的性能影响
- JavaScript对象文字表示法与普通函数及其性能影响