Chrome中的WebSQL和localStorage Scope

时间:2011-06-29 20:17:16

标签: javascript html5 google-chrome local-storage

编辑:下面的代码实际上正常工作。 Chrome开发者工具用户界面根本无法显示本地和页面加载后的webSQL存储,尽管我的脚本可以使用它们。

我的登录页面在本地使用WebSQL / localStorage保存了一些身份验证数据,然后我重定向到登陆页面,该登录页面本地数据立即消失。我不确定为什么数据不会在页面加载中持续存在(所有页面都在同一个域/协议/端口上)。我在Ubuntu上测试Chrome 12.0.742.100。这是我的代码,任何想法?

var db = window.openDatabase("session", "1.0", "session", 1000000);
db.transaction(function(tx){
   tx.executeSql('CREATE TABLE IF NOT EXISTS auth (uuid UNIQUE TEXT, token TEXT)');
});
db.transaction(function(tx){
   tx.executeSql('INSERT INTO auth (uuid, token) values (?, ?)',[json.uuid,json.token]);
});
localStorage.setItem("uuid",json.uuid);
localStorage.setItem("token",json.token);

// REDIRECT TO HOMEPAGE
window.location = 'droid.html';

//... the next page has an alert() that tries to access the local values.

1 个答案:

答案 0 :(得分:0)

可能是您遇到了范围问题,或者实际上没有设置值。

以下是我建议尝试的一些事项(按此顺序):

  1. 通过在同一页面上立即检索数据来证明数据实际上是在localStorage中设置的;
  2. 通过在超时(例如2秒)之后在同一页面上检索数据来证明数据是持久的(至少暂时一段时间);
  3. 而不是设置window.location,请尝试使用window.location.assign()
  4. 而不是立即更改窗口位置,在短暂超时(比如100ms)之后,或者在页面加载之后(如果页面尚未完成加载),请执行此操作。
  5. 希望这有帮助!