使用Chrome存储而不是本地存储创建解析会话
Create Parse sessions using Chrome storage not localstorage
我正在构建一个需要解析用户会话的Chrome扩展。因为localstorage是域特定的,我需要使用chrome。存储,以便在任何站点都可以访问。
当前Parse Javascript SDK使用localstorage来存储用户对象并创建会话。我如何切换这个,所以Parse使用chrome.storage?
这是我目前的想法:
on login
store sessiontoken in chrome.storage
当我访问一个站点时:
if chrome.storage.sessiontoken
create parse session with chrome.storage.sessiontoken
我想知道是否有人想出一个更简单的方法?
我想做的就是:窗口。Localstorage = chrome.storage
但是想象一下这会导致问题。有人解出来了吗?
基本上你需要写你自己的存储控制器(当然有chrome api),然后让parse使用它。
由于这个线程是较新的,下面是详细的解决方案:
默认情况下,Parse javascript SDK使用window.localStorage
api存储数据。然而,在Chrome应用程序中,localStorage
被chrome.storage
api取代,提供了更好的非阻塞存储解决方案。
Parse SDK实际上是为不同类型的存储(同步和异步)准备的,并让您设置自己的自定义存储控制器
正如@andrewimm(来自github)所指出的,在调用Parse.initialize
之前需要调用Parse.CoreManager.setStorageController(YOUR_STORAGE_CONTROLLER)
。
一个自定义存储控制的例子是Parse React Native存储控制器(这也是async),可以在 https://github.com/ParsePlatform/Parse-SDK-JS/blob/master/src/StorageController.react-native.js
找到:- 一个同步控制器对象需要设置它的
async
属性为0
,并且有getItem, setItem,removeItem, and clear
功能实现 - Async控制器对象需要设置
async
属性为1
,并实现getItemAsync, setItemAsync,removeItemAsync,clear
所有你需要做的是遵循react native的例子和构建自己的存储控制器(与chrome存储api),并让Parse使用它,而不是使用localStorage
原始Github问题线程:https://github.com/ParsePlatform/Parse-SDK-JS/issues/72
你不能直接用chrome.storage
代替localstorage
,因为一个是同步的,一个不是,更不用说不同的API方法了。
无论如何都不能以使完全同步的方式包装它。然而,这里有一些想法:
-
在后台脚本中使用存储。在那里,
localStorage
的域是固定的。 -
创建存储的本地同步副本;就像
然而,保存这个缓存将会是一个问题。您必须拦截写入并将其提交给var localData = {}; chrome.storage.local.get(null, function(data) { localData = data; doSomethingElse(); // Mind that this is async })
chrome.storage
,并同样在onChanged
事件上更新它-但所有这些都将是异步的,这可能无法工作。
简而言之,如果一个库在内部使用localStorage
,如果不重写库或将其保留在后台,则无法充分替换它。
- 使用javascript创建新的文本文件(),但存储[objectFile]而不是文本
- 存储动态创建的复选框值
- 创建一个变量并在页面之间移动时“存储它”,jQuery
- 如何从JSON响应创建Dojo存储
- 存储创建工作,存储定义不工作
- 当类型存储在变量中时,不使用eval创建对象的实例
- 正在创建事件侦听器以从本地存储中删除对象
- 将动态创建的输入中的值存储到PHP变量中
- 创建存储按钮单击位置的数组
- 我们如何在 javascript 对象中使用字符串名称存储创建 Backbone 视图的实例
- 使用 JSON 存储创建的 2 个 var 项
- HTML5 Web 存储创建变量
- 使用Chrome存储而不是本地存储创建解析会话
- 使用本地存储创建注册和登录页面
- 使用node.js为谷歌云存储创建签名url,以便从浏览器直接上传
- 如何从JSON存储创建一个JavaScript日期对象
- 环回组件存储创建api来显示文件夹
- 使用 javascript/jQuery 和本地存储创建用户可自定义的导航
- ExtJS从现有存储创建记录
- 使用HTML5本地存储创建论坛