V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
eric_zyh
V2EX  ›  问与答

chrome插件如何把数据存在本地

  •  
  •   eric_zyh · 2012-01-11 15:40:43 +08:00 · 8997 次点击
    这是一个创建于 4734 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问chrome插件如何存储数据,例如我订阅一个RSS,把rss的url存储到本地。以后每次打开chrome都能记住这个url。

    在google code没有找到这个功能的api
    17 条回复    1970-01-01 08:00:00 +08:00
    plan9
        1
    plan9  
       2012-01-11 18:30:17 +08:00
    HTML5 Local Storage
    ehaagwlke
        2
    ehaagwlke  
       2012-01-11 18:39:53 +08:00
    多半都用localStorage。
    一般扩展的设置都用这个存的。
    yyfearth
        3
    yyfearth  
       2012-01-11 20:20:38 +08:00
    多的去了,localStorage, webSQL, indexedDB, FS API.
    大量数据webSQL和indexedDB比较好,少量的配置可以用localStorage。
    如果是基于文件的,自然用FS API最好了,而且可以配置成没有容量限制。
    9hills
        4
    9hills  
       2012-01-11 23:35:47 +08:00
    lz可以去看中文版的doc: http://open.chrome.360.cn/html/dev_doc.html
    eric_zyh
        5
    eric_zyh  
    OP
       2012-01-12 01:46:57 +08:00
    多谢 ls 各位~ 哈
    kirch
        6
    kirch  
       2012-01-12 01:53:56 +08:00
    试过存5000条数据到localStorage,速度变得超慢
    eric_zyh
        7
    eric_zyh  
    OP
       2012-01-14 02:55:56 +08:00
    @yyfearth 麻烦在帮我看看.

    我的场景是:通过 [popup] 输入并保存一个值,之后在 [content_scripts] 调用这个值。有什么好的存储方案么?


    1.我试了 localStorage、webSQL 问题是这两个在跨域的情况下就失效了。
    2.在网上看到一个rookie的插件基于flash,将数据保存到本地文件,支持跨域。正在调试,感觉问题挺多...
    3.fs api 能不能提供一个文档链接?
    zythum
        8
    zythum  
       2012-01-14 03:39:59 +08:00   ❤️ 1
    @eric_zyh content_scripts没法直接从应用的localStorage和webSQL等等的任意方式拿东西。只有一种方法。通过与backgroud_page通信。
    看这部分 http://code.google.com/chrome/extensions/messaging.html
    有两种方式,一种是单次的通信。使用sendRequest
    一直是保存通信。使用connect。朱一做的萌否的插件就是用的这个。

    记住在页面上获取的localStorage和webSQL都是在所在页面上的。content_scripts是在别人的页面上执行的,获取到的是别人页面上的localStorage和webSQL

    连接到朱一的萌否电台插件帖:
    http://www.v2ex.com/t/25496
    下面有贴源码。
    zythum
        9
    zythum  
       2012-01-14 03:42:45 +08:00
    @eric_zyh content_scripts的域是在别人的页面上。就好比window.localSotrage的window不是你的插件的window。所以不是一个东西。
    fs api也是需要与background_page通信让background_page来完成。
    eric_zyh
        10
    eric_zyh  
    OP
       2012-01-14 04:06:15 +08:00
    @zythum 多谢 豁然开朗
    yyfearth
        11
    yyfearth  
       2012-01-14 07:05:29 +08:00
    @eric_zyh 你没在你的帖子里面说明是popup和content_scripts跨域啊。这个特殊的啊。要用到朱一妹纸说的通信。最近我也在写chrome extension,呵呵。
    yyfearth
        12
    yyfearth  
       2012-01-14 07:06:00 +08:00
    @eric_zyh 然后在background_page,用localStorage存下来
    wontoncc
        13
    wontoncc  
       2012-01-14 08:18:44 +08:00 via iPhone
    我只是乱入一下…并没有任何实质意义.
    你们说的难道不是extension(扩展)么?
    yyfearth
        14
    yyfearth  
       2012-01-14 08:42:05 +08:00
    @wontoncc 现在基本上扩展和插件混在一起了,大家都有自动判别引擎。现在写np插件的,估计很少啊
    eric_zyh
        15
    eric_zyh  
    OP
       2012-01-14 19:16:10 +08:00
    @zythum @yyfearth 多谢2位的解答~ 做了个淘宝客小插件,直接把淘宝商品url转成淘宝客链接。
    http://plug.bangnintao.com/

    还可耻的抄袭了 朱一妹子 的css
    zythum
        16
    zythum  
       2012-01-14 19:19:59 +08:00
    你是说blog的角标么?
    = =。

    其实当时是做给 @yyfearth 用的。没曾想感觉不错就自己用着了。
    话说blog的字体太大了。字出去了。
    eric_zyh
        17
    eric_zyh  
    OP
       2012-01-14 19:24:52 +08:00
    @zythum 嗯 貌似字体不一样~不管了 反正我觉得这角标挺帅气。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:33 · PVG 11:33 · LAX 19:33 · JFK 22:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.