原文地址:?utm_source=feedly
作者:Rachel Appel
管理数据是应用开发中非常关键的一个环节。无论是游戏,新闻,旅游还是关于时尚的应用,都总是与数据密不可分。Win8应用经常需要管理一些存储在不同位置且格式多种多样的散乱数据。我将在这篇文章中讲述多种数据存储方式以及创建Win8应用时可用的数据访问API,涉及所有语言,以及对于内容和配置的数据管理策略。
数据管理和存储需要考虑的事项
作为一个应用开发人员,你需要在项目开始之前决定你的数据需求,因为修改底层架构会导致大量的重复性工作。你可能有一个已经存在的数据源,在这种情况下它们为你做出决定,但是对于一个还未开工的项目,你必须要考虑要把数据存储在什么地方。你有两个选择,存储在本地或远程的某个地方:
本地:通常情况下这种数据存储在文件或本地数据库,但是在Win8中,你可以通过内置的文件选择器(File Picker)或合约把其他应用当作数据的来源。在Javascript应用中,Web Storage和IndexedDB API也可以作为本地数据源。
远程:这些数据可以通过Windows Azure, SkyDrive或者是一些可以提供JSON或XML数据的远端HTTP端点存储在云端,香港虚拟主机,也包括一些像Facebook或Flicker的公共API.
数据的大小经常决定了数据需要存储在本地还是远端;然而,大部分Win8应用会既使用本地数据也使用远端数据。这是因为相对较小,更易移动的设备例如笔记本,平板电脑,手机都是有规范的,他们很少应用很大的存储空间。尽管如此,它们仍然需要让应用在离线状态时能够正常运行。例如,Surface,像很多便携式设备一样,虚拟主机,拥有32G或64G存储空间。一些简单的基于文本的数据,例如JSON一般不会很大,但是关系数据库和多媒体数据(比如图片,音频和视频)会很快占满设备的存储空间。
让我们看下用于存储应用程序数据的各种本地和远端存储方式。
Web Storage
Web Storage听起来可能像简单的在Web上的存储,其实不是。Web Storage,是一个HTML5标准,是一种将数据存储在本地客户端的很好的方式。Windows8应用程序和以前的HTML页面都支持Web Storage. 不需要去设置数据库,也不需要去复制文件,香港虚拟主机,Web Storage是一种内存中的数据库。
Web Storage可以用Javascript通过window对象的以下两种属性获得:
1. localStorage: 本地数据,在应用终止后持久化并可以提供给之后的应用实例使用。
2. sessionStorage: 也是本地数据,但是sessionStorage会在应用终止后被毁坏。
你可以通过附加动态属性的方式把简单类型或复杂对象的数据存储在sessionStorage或者localStorage变量中。动态属性是类似于下面语法的键值对:
sessionStorage.lastPage = 5;WinJS.xhr({ url: "data/data.json" }).then(function (xhr) { localStorage.data = xhr.responseText;};