首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinJS IndexedDB实现--如何在应用程序版本更改时使用相同的DB

WinJS IndexedDB实现--如何在应用程序版本更改时使用相同的DB
EN

Stack Overflow用户
提问于 2013-01-21 04:02:38
回答 4查看 786关注 0票数 1

我正在构建一个WinJS地铁应用程序,它将运行在Surface和ther Win8平板电脑上。在发送到服务器之前,使用IndexedDB存储本地数据。对于发行,我们可能会使用SideLoading或企业发行版,并避免存储。为了测试,我正在创建应用程序包,并发送给我的同事。Problem 1:每次安装应用程序包时,它都会重新创建数据库和对象存储,而我希望使用现有的数据库和对象存储来保留旧数据。Problem 2 --我的目的是创建一个对象存储结构,捆绑一些主数据,并随安装包一起分发。我现在可以通过代码实现这一点,但不能分离db组件。Problem 3 -我还没有找到一个很好的win8索引数据库查看器,在这里我可以查看所有db、对象存储、结构和数据。

提前谢谢..。

EN

回答 4

Stack Overflow用户

发布于 2013-01-21 08:33:24

我已经围绕indexeddb编写了一个库,其中包含了一种用于调试的查看器。您可以在codeplex:linq2indexed上找到它。它还附带了一个nuget包。我还写了一个关于如何使用它的帖子

我也有一个浏览器,为网络工作,但还没有将它移植到windows 8。也许你可以尝试一下,我不认为这将是困难的。你也可以在codeplex上找到观看者。有关查看器的更多信息,请查看此帖子

我希望这能进一步帮助你。任何评论,改进,..。是受欢迎的。

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 05:35:30

所以有几个问题你想在这里解决:

问题1

通过侧加载一个应用程序,它将创建一个新的应用程序安装,这反过来创建了一个新的路径,应用程序将被关闭。因为IndexedDB与应用程序的域绑定在一起,所以它将被销毁(WinJS有点特殊,因为它在技术上不是一个新的域,但是它是一个新的位置,尽管如此,它还是从一个新的位置服务)。

据我所知,商店安装应用程序的方式不会触发这一点,因为应用程序包是更新的。不幸的是,我认为这是一个问题,您将无法避免侧加载包。

问题2

微软实际上提供了一个用于调试IndexedDB的UI (它是一个小型JS库),它位于他们的博客上。我个人还没有使用它,但如果没有其他适合您的包装器,这将是一个很好的起点。

问题3

要执行初始的数据库加载,我将有以下过程:

  • 侦听onupgradeneeded事件
  • 在事件处理程序中读取应用程序提供的JSON文件,或者将数据嵌入JS文件中(取决于大小)

这样,您就可以为不同版本的数据库(甚至是应用程序)拥有不同版本的数据。

票数 1
EN

Stack Overflow用户

发布于 2013-01-21 16:20:17

对于“预捆绑”索引DB数据,我建议您创建一个批量导入程序,它以JSON格式从磁盘加载数据,然后遍历它,根据需要添加数据。Kristof的linq2indexed,或者我的db.js迭代会很好地解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14432363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档