我正在尝试创建一个Chrome扩展程序,该程序将用户的标签存储到一个将在弹出窗口中显示的按钮中。可以有多个按钮,每个按钮都可以删除。
目前,我用数字区分每个按钮的标签信息。例如,第一个按钮将具有tabName1
,tabUrl1
来存储选项卡名称和URL。第二个按钮将具有tabName2
,tabUrl2
。
该数字对应于按钮的计数器,这是访问每个按钮的选项卡信息并显示正确数目的按钮的一种方式。我们称之为buttonCount
。 tabName
,tabUrl
和buttonCount
将全部存储在storage
中。
当用户删除按钮时出现问题。例如,如果有3个按钮,并且用户删除了第二个按钮,则buttonCount
将变为2
。但是,由于tabName3
无法访问tabUrl3
,因此我将无法访问i
或3
。
for (var i = 1; i <= buttonCount; i++) // i will become 1 and 2
{
getStorage(i); // only displays first button since "tabName2" does not exist
}
我通过不更改buttonCount
并返回tabName2
是否为null
来解决此问题。但是,这导致buttonCount
可以永久增加并尝试访问不存在的选项卡信息,这将导致弹出窗口的加载时间越来越长。
为每个按钮存储标签信息并避免出现此问题的另一种方法是什么?