Board logo

标题: GWT 对 HTML5 storage 的支持和实现(2) [打印本页]

作者: look_w    时间: 2018-10-19 20:54     标题: 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 中的一组数据.
如何在 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 值。
清单 1
1
2
3
4
  import com.google.gwt.storage.client.Storage;
  private Storage stockStore = null;
  stockStore = Storage.getLocalStorageIfSupported();//返回 LocalStorage
//   stockStore = Storage.getSessionStorageIfSupported();//返回 SessionStorage






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0