【发布时间】:2019-02-16 11:14:34
【问题描述】:
抱歉,如果这是重复的,但在 www 上找到的答案没有回答我的具体问题,或者我只是缺乏找到正确答案的条件,如果是这样,我很乐意被引导到正确的方向。 :)
我的问题是,我从 .json 文件中获取一个数组,类似于:
[
"Ben Berry",
"Susan Boile",
"Jerry Smith",
...
]
并为其制作一个局部变量副本,该副本将用于所有接下来的 script.js 工作。
让我们也想象一下,这个列表是巨大的。
在我的 HTML 中,我使用无序列表中的列表元素动态显示所有这些元素。
现在,如果有人点击其中一个 li,它应该从 DOM 中删除,并且元素的局部变量副本也应该删除。
这当然可以通过 li 标签内的 HTML 属性来完成 -> onclick=function() 但我觉得使用 addEventListener 方法更舒服。
这些监听器可以很容易地添加到每个监听器中,方法是使用 .forEach 循环整个数组并向每个 li 添加一个 eventListener。
但是,如果我现在按名字或姓氏的字母顺序对列表进行一次又一次的排序,会发生什么情况。这将导致一次又一次地调用包含这个 .forEach 循环的函数。
这个过程不会在内存中创建数十亿(没有双关语)的事件监听器,这会成为性能问题吗?如果是这样,最好的程序是什么?
【问题讨论】:
标签: javascript arrays list performance addeventlistener