0

在我的 chrome 扩展程序中,我想在扩展程序运行时在内存中对用户首选项进行任何更改,并且仅在扩展程序即将终止时将首选项(作为 JSON obj)保存到 localStorage(我使用背景 html 页面在我的扩展中)。

我目前正在每次更改首选项时都写信给 localStorage,但我希望看看这是否可以更有效地避免在每次首选项更改时写入磁盘,而是在终止前只执行一次。

有什么方法可以知道扩展何时终止,或者有人知道处理这种情况的更好方法吗?

4

1 回答 1

0

这有帮助吗?

 function saveSettings(){
     window.clearTimeout(window.savingSettings);
     return window.savingSettings = window.setTimeout(function(){ 
         ... // write to local storage here.
     },2000)
 };

这将确保:

  1. 保存操作之间至少有两秒钟
  2. 整个事情在某种程度上与主线程并行运行

您应该会在一定程度上看到性能提升,但有一个问题。如果用户在更改首选项后没有等待那两秒钟就关闭了浏览器,则首选项将不会被保存。

于 2012-06-08T00:47:01.460 回答