我需要在chrome的扩展中实现日志记录。 远程日志记录(例如使用jsnlog)不适合。记录发生在不同的页面上
我看到了这个问题的两个解决方案,但我不喜欢它们,每个都有它的缺点。这两种解决方案都基于以圆形单链表的形式保存存储中的日志。每条消息都作为一个单独的条目存储在存储中,并带有密钥(" mylogmess#..")也有一个指向下一个空闲密钥的指针(" mylogmess#.. + 1&#34 ;)添加也位于存储中的新消息(" mypointer)。
存储结构如下:
{
"mypointer": 5,
"mylogmess#0": "H",
"mylogmess#1": "e",
"mylogmess#2": "l",
"mylogmess#3": "l",
"mylogmess#4": "o",
}
第一种算法很简单:读取指针,使用指针中的键创建日志消息,递增指针,写入以存储更新的指针和新消息。
因此,记录单个消息的操作的复杂性如下:1从存储中读取(获取指针)1在存储中写入(设置更新的指针+消息)。
此方法的缺点是并非所有消息都保存,因为对存储的读写访问是异步发生的,指针没有时间更新,因此消息被覆盖。
第二种算法基于向背景页面发送消息。在这种情况下,指针将只读取一次(在启动扩展时),然后它将只记录在chrome存储中。从架构的角度来看,这种方法对我来说并不令人愉快。
您可以推荐哪种记录方法?