GWT 对 HTML5 storage 的支持和实现(2)
 
- UID
- 1066743
|

GWT 对 HTML5 storage 的支持和实现(2)
HTML5 Storage 在 GWT 中的支持GWT 简介:GWT(http://code.google.com/webtoolkit)是 Google Web Toolkit 的简写。它是 Google 公司发布的基于 Java 语言开发 Web2.0 应用的工具包。在使用 GWT 开发 Web 应用时,开发人员是通过编写 Java 代码来创建 Web 界面中的组件。这样对于 Web 开发人员可以提高开发效率,更方便的调试。GWT 而在与后台交互方面,GWT 也实现了对 Ajax 的封装。本文将不会对 GWT 进行深入的讲解,如果您对这部分内容感兴趣可以参考 中 GWT 的相关专题。
GWT 对于 Storage 的支持:GWT 在 2.3 版本后开始支持 HTML5 Storage,我们可以使用 GWT 提供的标准类库,并且在支持 HTML5 的浏览器上来使用 HTML5 Storage 的功能。下面我们具体看一下 GWT 针对 HTML5 都提供了哪些类。
com.google.gwt.storage.client.Storage: 是必须导入的类,这个类实现了 HTML5 Storage 接口。
表 1.Storage方法名描述 为 StorageEvents 增加一个 event handler. ()删除 Storage 中的元素 (java.lang.String key)返回 Storage 中知道的元素 . ()返回 Storage 中数据的个数.getLocalStorageIfSupported()返回一个 Local Storage 对象 返回一个 Session Storage 对象. ()如果当前运行的平台支持 localStorage 则返回 True ()如果当前运行的平台支 sessionStorage 则返回 True ()如果当前运行的平台同时支持 localStorage 和 sessionStorage 则返回 True (int index)根据指定的索引,返回 Storage 对象中对应的 key (java.lang.String key)根据指定的键值删除 storage 中的一组数据.
- LocalStorage:interface WindowLocalStorage
{readonly attribute Storage localStorage;};
Window implements WindowLocalStorage
- SessionStorage:interface WindowSessionStorage {
readonly attribute Storage sessionStorage;
};
Window implements WindowSessionStorage
- StorageEvent 当 Storage 对象被改变使,将会触发 Storage Event.
- StorageEvent.Handler (interface for storage event handlers)Represents an Event handler for s.
- StorageMap (exposes the Storage object as a standard Map) 这是个很有用的类,创建一个 Map,为我们提供了对于 Storage 对象的相关操作的方法。
如何在 Web 应用中使用 HTML5 Storage我们在使用 HTML5 Storage 时,首先需要获得 Storage 对象, 获得 Storage 对象用Storage.getLocalStorageIfSupported() 或 Storage.getSessionStorageIfSupported() 这两个方法,到底用哪一个取决于我们究竟使用哪一种类型的 Storage。我们所有的浏览器可能不支持 Storage,所以在使用时,我们应该去检查一下浏览器是否支持 Stroage.如果浏览器支持的话,我们一般根据具体的需求进行存储或者修改 Stroage 对象。同时我们也可以根据需要删除 Storage 对象中的一对对象或者删除掉整个 Storage 对象。 接下来我们根据以上几个方面详细讲解一下,GWT 中是如何实现上述 Storage 的基本需求的。
检测浏览器是否支持 HTML5 && 获得 Storage 对象GWT 提供了一个简单的方式去检测浏览器是否支持 HTML5 Storage, 在获得 Storage 对象的方法中可以同时判断.浏览器是否支持。 我们使用 Storage.getLocalStorageIfSupported() 或者 Storage.getSessionStorageIfSupported(),这两个方法分别获得 LocalStorage 对象和 SessionStorage 对象。 如果浏览器支持将会返回您需要的 Storage 对象,如果不支持将会返回 null 值。
清单 11
2
3
4
| import com.google.gwt.storage.client.Storage;
private Storage stockStore = null;
stockStore = Storage.getLocalStorageIfSupported();//返回 LocalStorage
// stockStore = Storage.getSessionStorageIfSupported();//返回 SessionStorage
|
|
|
|
|
|
|