Javascript 如何安排活动列表
我需要安排一天大约1000个事件的列表,其中每个事件都只需要一些文本和按钮来更新小组件 计划事件列表示例:Javascript 如何安排活动列表,javascript,reactjs,react-native,performance,Javascript,Reactjs,React Native,Performance,我需要安排一天大约1000个事件的列表,其中每个事件都只需要一些文本和按钮来更新小组件 计划事件列表示例: [ {time: '00:00:00', updateString: 'foo'}, {time: '00:03:15', updateString: 'bar'}, ... {time: '23:57:49', updateString: 'baz'}, ] 在循环中使用setTimeout()函数会对性能产生负面影响吗? 我的意思是,在一天开始的时候增加1000个计时
[
{time: '00:00:00', updateString: 'foo'},
{time: '00:03:15', updateString: 'bar'},
...
{time: '23:57:49', updateString: 'baz'},
]
在循环中使用setTimeout()
函数会对性能产生负面影响吗?
我的意思是,在一天开始的时候增加1000个计时器,
它不会冻结应用程序吗?我认为1000个计时器不是什么大问题。
我开始担心10k或100k定时器的性能(这可能仍然没有问题) 无论如何,设置许多计时器对我来说似乎不是最佳选择 我认为您可以将列表保持在状态,并定期检查是否达到或超过某个时间(如
Date.now()>item.time
)
(还要注意,setTimeout(f,1000)
不能保证在1000毫秒后运行。)
如果您需要(某种)毫秒精度和一个很长的列表,那么只有当事件时间接近主检查间隔时,才可以通过启动某种机制进行优化。可能存储一个较小的到期物品列表
例如,每10秒钟检查一次列表,如果某个事件在10秒钟内到期,则每毫秒仅检查一次此项目(或项目子集)。我不认为很清楚您想要什么。。。你能举个例子吗?@Camilo,用sampleNote更新了我的问题,问题应该是客观的,所以我编辑了你的问题,删除了主观要求(“最佳方式”,“这是个好主意吗”),并用可以客观回答的内容替换(“如何”,“它会对绩效产生负面影响”)。它仍然需要一个更好的示例,代码方面。通常,您希望在React编程中避免
setTimeout
,而不是用承诺或观察值包装,或者使用记忆来更均匀地分配负载。仍然不确定您想要实现什么,抱歉。谢谢,@kca,应用程序进入后台状态并返回如何?setTimeout
定时器是否安全?