浏览器数据库 IndexedDB 简明教程 ( 三 ) - 能用否 ?

yufei       5 年, 8 月 前       1303

浏览器数据库 IndexedDB 简明教程 ( 二 ) - 相知 ( 术语 ) 我们介绍了 IndexedDB 的相关概念和一些数据

所有 Web 端的新特性,例如最新的 HTML5 、JavaScript 最新的 ES2015ES2016ES2017CSS3,游览器对它们的支持都有个循序渐进的过程,所以,有时候,即使是 3 年前的东西,现代的浏览器可能还不支持,比如最近坑爹的 IE

IndexedDB 浏览器支持和检测

所有的现代浏览器都支持 IndexedDB,包括 IE10 ,不过在 IE9 及以下版本中不支持

IndexedDB 是浏览器 Window 全局变量上的一个对象,对于不支持的浏览器,该对象就不存在,所以检测的方法一般如下

if ( winow.indexedDB ) {
    // IndexedDB 可以使用
} else {
    // IndexedDB 不可以用
    // 提示用户,如果要用到最新的特性,应该切换浏览器或使用其它浏览器
    alert('你的浏览器不支持本地存储 IndexedDB,你可以升级浏览器或使用其它浏览器,比如 Chrome');
}

当浏览器不支持的时候的设计模式 module-aware

说起浏览器不支持的特性的处理情况,我就想起了很早之前某个人说过的一句话

「 对于前端开发,不要把浏览器当作一个最终展现 Web 的工具,而是应该把它动作最基础的 Web 展现工具 」

我对于这句话的理解,对于浏览器不完全支持的属性,应该继续封装一层,对外不感知是否支持

这种设计模式,我是从 PSR 15 HTTP 请求处理 中学到的

也就是说,对于我们自己不可控的基础组件或框架,我们使用它们的最好方式,就是重新设计中间一层,从而屏蔽底层的东西,达到随时可替换底层基础固件的目的

这种设计模式,在最新的 Go module 中称之为 「 module-aware 」

这是一种非常有趣的设计模式,这种设计模式非常符合团队开发需要

在我们的 简单教程 的后端中,对于 Memcached 的使用,我就封装了一次,从而能在 pylibmcpython-memcached 之间自由切换

更多 「 module-aware 」 设计模式的细节,你可以查看前几天我写的那几篇 [Go Module 简明教程]

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.