第二十三章笔记

1 检测网络存在

 /*测试是否有网络*/
  if (navigator.onLine) {
      alert("有网络");
  } else {
      alert("无网络");
  }


/*测试是否有网络触发事件*/  

  EventUtil.addHandler(window, "online", function () {
      alert("Online");
  });
  EventUtil.addHandler(window, "offline", function () {
      alert("Offline");
  });

2 数据存储

####(1)获取cookie的封装方法关于cookie的设定,他是同域的。而且它是以键值对形式出现
var CookieUtil = {
get: function (name) {
var cookieName = encodeURIComponent(name) + “=”,
cookieStart = document.cookie.indexOf(cookieName),
cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(“;”, cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart

                  + cookieName.length, cookieEnd));
        }
        return cookieValue;
    },
    set: function (name, value, expires, path, domain, secure) {
        var cookieText = encodeURIComponent(name) + "=" +
            encodeURIComponent(value);
        if (expires instanceof Date) {
            cookieText += "; expires=" + expires.toGMTString();
        }
        if (path) {
            cookieText += "; path=" + path;
        }

        if (domain) {
            cookieText += "; domain=" + domain;
        }
        if (secure) {
            cookieText += "; secure";
        }
        document.cookie = cookieText;
    },
    unset: function (name, path, domain, secure) {
        this.set(name, "", new Date(0), path, domain, secure);
    }
}; 

小结

离线 Web 应用和客户端存储数据的能力对未来的 Web 应用越来越重要。浏览器已经能够检测到用

户是否离线,并触发 JavaScript 事件以便应用做出处理。可以指定在应用缓存中保存哪些文件以

便离线时使用。对于应用缓存的状态及变化,也有相应的 JavaScript API 可以调用检测。
本书还讨论了客户端存储的以下几方面内容。
 以前,这种存储只能使用 cookie 完成,cookie 是一小块可以客户端设置也可以在服务 器端设置
的信息,每次发起请求时都会传送它 。
 在 JavaScript 中通过 document.cookie 可以访问 cookie。
 cookie 的限制使其可以存储少量数据,然而对于大量数据效率很低 。
IE 发明了一种叫做用户数据的行为,可以应用到页面的某个元素上,它有以下特点。
 一旦应用后,该元素便可以从一个命名数据空间中载入数据,然后可以通过 getAttribute()、
setAttribute()和 removeAttribute()方法访问。
 数据必须明确使用 save()方法保存到命名数据空间中,以便能在会话之间持久化数据。
Web Storage 定义了两种用于存储数据的对象:sessionStorage 和 localStorage。前者严格用
于在一个浏览器会话中存储数据,因为数据在浏览器关闭后会立即删除;后者用于跨会话持久化数据并
遵循跨域安全策略。
IndexedDB 是一种类似 SQL 数据库的结构化数据存储机制。但它的数据不是保存在表中,而是保存
在对象存储空间中。创建对象存储空间时,需要定义一个键,然后就可以添加数据。可以使用游标在对
象存储空间中查询特定的对象。而索引则是为了提高查询速度而基于特定的属性创建的。
有了以上这些选择,就可以在客户端机器上使用 JavaScript 存储大量数据了。但你必须小心,不要
在客户端存储敏感数据,因为数据缓存不会加密。

鲍志强 wechat
欢迎你扫一扫上面的微信公众号,订阅我的博客!
你的点赞是为了你的未来