当前位置:首页 » 存储配置 » 前端的存储方案

前端的存储方案

发布时间: 2023-04-28 00:18:46

① 说一下前端数据存储方式(cookies,localstorage,sessionstorage,indexedDB)的区别

Cookie最初是在客户端用于存储会话信息的,其要求服务器对任意HTTP请求发送Set-CookieHTTP头作为响应的一部分。cookie
以name为名称,以value为值,名和值在传送时都必须是URL编码的。浏览器会存储这样的会话信息,在这之后,通过为每个请求添加Cookie
HTTP头将信息发送回服务器。

localstorage

存储方式:

以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。

sessionstorage

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。

IndexedDB

索引数据库(IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。

② 前端本地存储的 3 种方法 cookie、localStorage、sessionStorage

当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。

存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那种设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。

不同的浏览器存放的cookie位置不一样,也是不能通用的。

cookie的存储是以域名形式进行区分的,不同的域下存储的cookie是独立的。

我们可以设置cookie生效的域(当前设置cookie所在域的子域),也就是说,我们能够操作的cookie是当前域以及当前域下的所有子域

一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样,一般为20个。

每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样,一般为4KB。

cookie也可以设置过期的时间,默认是会话结束的时候,当时间到期自动销毁

cookie值既可以设置,也可以读取。

我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,它包含了当前网站下所有的cookie(为避免跨域脚本(xss)攻击,这个方法只能获取非 HttpOnly 类型的cookie)。它会把所有的cookie通过一个分号+空格的形式串联起来,例如username=chenfangxu; job=coding

要想修改一个cookie,只需要重新赋值就行,旧的值会被新的值覆盖。但要注意一点,在设置新cookie时,path/domain这几个选项一定要旧cookie 保持一样。否则不会修改旧值,而是添加了一个新的 cookie。

把要删除的cookie的过期时间设置成已过去的时间,path/domain/这几个选项一定要旧cookie 保持一样。

如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间。如果不设置,cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁

使用方法: setCookie('username','cfangxu',30)

domain指定了 cookie 将要被发送至哪个或哪些域中。默认情况下,domain 会被设置为创建该 cookie 的页面所在的域名,所以当给相同域名发送请求时该 cookie 会被发送至服务器。

浏览器会把 domain 的值与请求的域名做一个尾部比较(即从字符串的尾部开始比较),并将匹配的 cookie 发送至服务器。

cookie 一般都是由于用户访问页面而被创建的,可是并不是只有在创建 cookie 的页面才可以访问这个 cookie。 因为安全方面的考虑,默认情况下,只有与创建 cookie 的页面在同一个目录或子目录下的网页才可以访问。即path属性可以为服务器特定文档指定cookie,这个属性设置的url且带有这个前缀的url路径都是有效的。

domain是域名,path是路径,两者加起来就构成了 URL,domain和path一起来限制 cookie 能被哪些 URL 访问。 所以domain和path两个个选项共同决定了cookie何时被浏览器自动添加到请求头部中发送出去。如果没有设置这两个选项,则会使用默认值。domain的默认值为设置该cookie的网页所在的域名,path默认值为设置该cookie的网页所在的目录。

通常 cookie 信息都是使用HTTP连接传递数据,这种传递方式很容易被查看,所以 cookie 存储的信息容易被窃取。假如 cookie 中所传递的内容比较重要,那么就要求使用加密的数据传输。

secure选项用来设置cookie只在确保安全的请求中才会发送。当请求是HTTPS或者其他安全协议时,包含 secure 选项的 cookie 才能被发送至服务器。

把cookie设置为secure,只保证 cookie 与服务器之间的数据传输过程加密,而保存在本地的 cookie文件并不加密。就算设置了secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息。机密且敏感的信息绝不应该在 cookie 中存储或传输,因为 cookie 的整个机制原本都是不安全的

注意:如果想在客户端即网页中通过 js 去设置secure类型的 cookie,必须保证网页是https协议的。在http协议的网页中是无法设置secure类型cookie的。

这个选项用来设置cookie是否能通过 js 去访问。默认情况下,cookie不会带httpOnly选项(即为空),所以默认情况下,客户端是可以通过js代码去访问(包括读取、修改、删除等)这个cookie的。

当cookie带httpOnly选项时,客户端则无法通过js代码去访问(包括读取、修改、删除等)这个cookie。 在客户端是不能通过js代码去设置一个httpOnly类型的cookie的,这种类型的cookie只能通过服务端来设置。

HTML5新方法,不过IE8及以上浏览器都兼容。

生命周期:持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

存储的信息在同一域中是共享的。

当本页操作(新增、修改、删除)了localStorage的时候,本页面不会触发storage事件,但是别的页面会触发storage事件。

大小:据说是5M(跟浏览器厂商有关系)

localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

localStorage受同源策略的限制

当storage发生改变的时候触发。 当页面对storage的操作会触发其他页面的storage事件,storage事件是可以跨页面通讯的,在你对storage对象进行任何操作的时候,都会触发storage事件,事件里边包括包括:

storage事件使用参考

对于sessionStorage和localStorage上的任何更改都会触发storage事件,但storage事件不会区分这两者;

其实跟localStorage差不多,也是本地存储,会话本地存储

和 localStorage 的API完全相同

用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭标签页后,sessionStorage即被销毁,或者在新的标签页打开同源的另一个页面,sessionStorage也是没有的。

应用的场景有,比如说我们都知道,在页面刷新的时候,我们写的js里边的变量函数等等的,内存会被释放掉,那么这个时候可以用sessionStorage来存储一些不想被释放掉内存的数据,比如说记录一个滚动条的位置,或者播放器的进度等等

在本地(浏览器端)存储数据

sessionStorage和localStorage 都受到同源策略限制,就是跨域问题,在访问sessionStorage和localStorage 的时候,页面必须在同一个域名,使用同一个协议,并且一个端口

sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。

localStorage是永久存储,除非手动删除。

sessionStorage当会话结束(当前页面、标签页关闭的时候,自动销毁)

cookie的数据会在每一次发送http请求的时候,同时发送给服务器而localStorage、sessionStorage不会。

sessionStorage和localStorage 也有大小限制,相比cookie大了很多,是5M

sessionStorage和localStorage只能通过客户端操作,cookie既可以通过客户端操作又可以通过服务端操作

③ 前端本地存储

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

一,本地存储特性

1、数据存储在用户浏览器中

2、设置、读取方便、甚至页面刷新不丢失数据

3、容量较大约5M

4、只能存储字符串,可以将对象JSON.stringify() 编码后存储

二,window.sessionStorage

1、生命周期为关闭浏览器窗口

2、在同一个窗口(页面)下数据可以共享

3、以键值对的形式存储使用

存储数据:

sessionStorage.setItem(key,value)

获取数据:

sessionStorage.getItem(key)

删除数据:

sessionStorage.removeItem(key)

清空数据:(所有都清除掉)

sessionStorage.clear()

三.window.localStorage

存储空间高达5m

没有过期时间

localStorage  会一直存在

sessionStorage 窗口关闭失效

cookie会在客户端和服务器端往返 ,本地存储只存储在本地

存储数据:

设置存储有三种方式:

localStorage.key="value"

localStorage["key"]="value"

localStorage.setItem(key, value)

localStorage.setItem(key,value)

//参数1 是键

//参数2是对应的值

//setItem  也是修改元素

注意:不能直接存储对象  可以将对象转化为1个字符串

//注意:不能直接存储对象  可以将对象转化为1个字符串

//通过json

varstr=JSON.stringify(对象名);

localStorage.setItem('对象名',str);

//使用的时候可以再将json字符串转为对象

varstr1=localStorage.getItem('对象名');

varobj=JSON.parse(str);

获取数据:

localStorage.getItem(key(1))

//通过索引获取key值

//没有就返回null

删除数据:

localStorage.removeItem(key)

//删除 通过key值

清空数据:(所有都清除掉)

localStorage.clear()

对象长度(有多少个元素)

localStorage.length

④ 前端本地存储有几种方式

三种:localStorage、sessionStorage、token

⑤ 前端储存和本地储存有哪些区别

1、前端存储
所谓前端存储,是在网络视频监控系统的前端设备(如网络视频编码器或网络摄像机)中内置存储部件,由前端设备直接完成监控图像的本地录制和保存。
前端存储具有几个方面的优势:一是可以通过分布式的存储部署,来减轻集中存储带来的容量压力;二是可以有效缓解集中存储带来的网络流量压力;三是可以避免集中存储在网络发生故障时的图像丢失。
对于前端存储,由于单个前端编码设备通常所带监控点路数不多,存储时间也不长,所以对存储容量要求不高,网络摄像机一般用CF卡或SD卡,视频服务器一般用内置硬盘。这与以往单机存储相比,基本没有区别。
而与以往单机存储本质上不同的是,为了保证用户访问的灵活性和便捷性,网络视频监控系统中的所有前端存储除了要能够提供点对点的单机访问外,还要能够通过一个统一的接口提供所有内容的集中共享。为此,网络视频监控系统通过中心业务平台对所有前端存储进行统一管理和调度,并实现存储空间和存储内容的网络化。这样,用户既可以直接登录单个前端设备进行录像资料的点播回放,也可以统一登录中心业务平台进行所有前端录像资料的集中检索和回放。
2、本地存储
本地存储是指所有视频图像都通过前端接入点的DVR进行分散存储,其优点是投入少,对网络压力最小,缺点是管理复杂,不易维护,重要数据没有安全保证等。在本地存储当中,以DVR为主要的存储设备,因此要求DVR存储的可靠性更强。但是,据有关专家介绍,由于DVR没有完善的组件和磁盘容错机制,无法确保数据的安全性;如果是安装于室内环境还好,但偏偏前端又多处于环境恶劣的室外,以目前的DVR技术水平,如果在室外使用则故障率较高,硬盘容易发生故障,从而造成视频的丢失。因此,本地存储多适合监控点较少、较分散,数据保存周期短,数据安全要求不高的领域,如小型公共场所监控、物业小区视频监控、中小型企业视频监控等。

⑥ 前端数据存储方式有哪些

为你总结了四种数据存储方式,希望可以帮到你:

1、Cookie

cookie 用于存储web页面的用户信息。

cookie 是一些数据,存储在你电脑上的文本文件中。当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。Cookie的作用就是用于解决如何记录客户端的用户信息。

2、localStorage

  • 允许在浏览器中存储key/value对的数据。

  • 用于长期保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。

  • 属性是只读的。

  • 如果你想浏览器窗口关闭后还保留数据,可以使用localStorage;如果你只想将数据保存在当前会话中,可以使用sessionStorage.

3、sessionStorage

  • 允许在浏览器中存储key/value对的数据。

  • 数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后也将删除这些数据。

4、indexedDB

索引数据库(indexDB)API(作为HTML5 的一部分)对创建具有吩咐本地存储数据的数据密集型的离线HTML5 Web 应用程序很有用。

同时它还有助于本地缓存数据,使传统再现Web应用程序(比如移动 Web 应用程序)能够更快的运行和响应。

想要了解或者学习更多前端知识,推荐北京尚学堂,雄厚的师资力量带给你高效的学习体验。

⑦ 大数据时代下的三种存储架构

大数据时代下的三种存储架构_数据分析师考试

大数据时代,移动互联、社交网络、数据分析、云服务等应用的迅速普及,对数据中心提出革命性的需求,存储基础架构已经成为IT核心之一。政府、军队军工、科研院所、航空航天、大型商业连锁、医疗、金融、新媒体、广电等各个领域新兴应用层出不穷。数据的价值日益凸显,数据已经成为不可或缺的资产。作为数据载体和驱动力量,存储系统成为大数据基础架构中最为关键的核心。

传统的数据中心无论是在性能、效率,还是在投资收益、安全,已经远远不能满足新兴应用的需求,数据中心业务急需新型大数据处理中心来支撑。除了传统的高可靠、高冗余、绿色节能之外,新型的大数据中心还需具备虚拟化、模块化、弹性扩展、自动化等一系列特征,才能满足具备大数据特征的应用需求。这些史无前例的需求,让存储系统的架构和功能都发生了前所未有的变化。

基于大数据应用需求,“应用定义存储”概念被提出。存储系统作为数据中心最核心的数据基础,不再仅是传统分散的、单一的底层设备。除了要具备高性能、高安全、高可靠等特征之外,还要有虚拟化、并行分布、自动分层、弹性扩展、异构资源整合、全局缓存加速等多方面的特点,才能满足具备大数据特征的业务应用需求。

尤其在云安防概念被热炒的时代,随着高清技术的普及,720P、1080P随处可见,智能和高清的双向需求、动辄500W、800W甚至上千万更高分辨率的摄像机面市,大数据对存储设备的容量、读写性能、可靠性、扩展性等都提出了更高的要求,需要充分考虑功能集成度、数据安全性、数据稳定性,系统可扩展性、性能及成本各方面因素。

目前市场上的存储架构如下:

(1)基于嵌入式架构的存储系统

节点NVR架构主要面向小型高清监控系统,高清前端数量一般在几十路以内。系统建设中没有大型的存储监控中心机房,存储容量相对较小,用户体验度、系统功能集成度要求较高。在市场应用层面,超市、店铺、小型企业、政法行业中基本管理单元等应用较为广泛。

(2)基于X86架构的存储系统

平台SAN架构主要面向中大型高清监控系统,前端路数成百上千甚至上万。一般多采用IPSAN或FCSAN搭建高清视频存储系统。作为监控平台的重要组成部分,前端监控数据通过录像存储管理模块存储到SAN中。

此种架构接入高清前端路数相对节点NVR有了较高提升,具备快捷便利的可扩展性,技术成熟。对于IPSAN而言,虽然在ISCSI环节数据并发读写传输速率有所消耗,但其凭借扩展性良好、硬件平台通用、海量数据可充分共享等优点,仍然得到很多客户的青睐。FCSAN在行业用户、封闭存储系统中应用较多,比如县级或地级市高清监控项目,大数据量的并发读写对千兆网络交换提出了较大的挑战,但应用FCSAN构建相对独立的存储子系统,可以有效解决上述问题。

面对视频监控系统大文件、随机读写的特点,平台SAN架构系统不同存储单元之间的数据共享冗余方面还有待提高;从高性能服务器转发视频数据到存储空间的策略,从系统架构而言也增加了隐患故障点、ISCSI带宽瓶颈导致无法充分利用硬件数据并发性能、接入前端数据较少。上述问题催生了平台NVR架构解决方案。

该方案在系统架构上省去了存储服务器,消除了上文提到的性能瓶颈和单点故障隐患。大幅度提高存储系统的写入和检索速度;同时也彻底消除了传统文件系统由于供电和网络的不稳定带来的文件系统损坏等问题。

平台NVR中存储的数据可同时供多个客户端随时查询,点播,当用户需要查看多个已保存的视频监控数据时,可通过授权的视频监控客户端直接查询并点播相应位置的视频监控数据进行历史图像的查看。由于数据管理服务器具有监控系统所有监控点的录像文件的索引,因此通过平台CMS授权,视频监控客户端可以查询并点播整个监控系统上所有监控点的数据,这个过程对用户而言也是透明的。

(3)基于云技术的存储方案

当前,安防行业可谓“云”山“物”罩。随着视频监控的高清化和网络化,存储和管理的视频数据量已有海量之势,云存储技术是突破IP高清监控存储瓶颈的重要手段。云存储作为一种服务,在未来安防监控行业有着客观的应用前景。

与传统存储设备不同,云存储不仅是一个硬件,而是一个由网络设备、存储设备、服务器、软件、接入网络、用户访问接口以及客户端程序等多个部分构成的复杂系统。该系统以存储设备为核心,通过应用层软件对外提供数据存储和业务服务。

一般分为存储层、基础管理层、应用接口层以及访问层。存储层是云存储系统的基础,由存储设备(满足FC协议、iSCSI协议、NAS协议等)构成。基础管理层是云存储系统的核心,其担负着存储设备间协同工作,数据加密,分发以及容灾备份等工作。应用接口层是系统中根据用户需求来开发的部分,根据不同的业务类型,可以开发出不同的应用服务接口。访问层指授权用户通过应用接口来登录、享受云服务。其主要优势在于:硬件冗余、节能环保、系统升级不会影响存储服务、海量并行扩容、强大的负载均衡功能、统一管理、统一向外提供服务,管理效率高,云存储系统从系统架构、文件结构、高速缓存等方面入手,针对监控应用进行了优化设计。数据传输可采用流方式,底层采用突破传统文件系统限制的流媒体数据结构,大幅提高了系统性能。

高清监控存储是一种大码流多并发写为主的存储应用,对性能、并发性和稳定性等方面有很高的要求。该存储解决方案采用独特的大缓存顺序化算法,把多路随机并发访问变为顺序访问,解决了硬盘磁头因频繁寻道而导致的性能迅速下降和硬盘寿命缩短的问题。

针对系统中会产生PB级海量监控数据,存储设备的数量达数十台上百台,因此管理方式的科学高效显得十分重要。云存储可提供基于集群管理技术的多设备集中管理工具,具有设备集中监控、集群管理、系统软硬件运行状态的监控、主动报警,图像化系统检测等功能。在海量视频存储检索应用中,检索性能尤为重要。传统文件系统中,文件检索采用的是“目录-》子目录-》文件-》定位”的检索步骤,在海量数据的高清视频监控,目录和文件数量十分可观,这种检索模式的效率就会大打折扣。采用序号文件定位可以有效解决该问题。

云存储可以提供非常高的的系统冗余和安全性。当在线存储系统出现故障后,热备机可以立即接替服务,当故障恢复时,服务和数据回迁;若故障机数据需要调用,可以将故障机的磁盘插入到冷备机中,实现所有数据的立即可用。

对于高清监控系统,随着监控前端的增加和存储时间的延长,扩展能力十分重要。市场中已有友商可提供单纯针对容量的扩展柜扩展模式和性能容量同步线性扩展的堆叠扩展模式。

云存储系统除上述优点之外,在平台对接整合、业务流程梳理、视频数据智能分析深度挖掘及成本方面都将面临挑战。承建大型系统、构建云存储的商业模式也亟待创新。受限于宽带网络、web2.0技术、应用存储技术、文件系统、P2P、数据压缩、CDN技术、虚拟化技术等的发展,未来云存储还有很长的路要走。

以上是小编为大家分享的关于大数据时代下的三种存储架构的相关内容,更多信息可以关注环球青藤分享更多干货

⑧ HTML5的5种存储方式详解

引言

本篇文章主要介绍了前端HTML5几种存储方式的总结 ,主要包括本地存储localstorage,本地存储sessionstorage,离线缓存(application cache),Web SQL,IndexedDB。有兴趣的可以了解一下。

正文开始~

h5之前,存储主要是用cookies。cookies缺点有在请求头上带着数据,大小是4k之内。主Domain污染。

主要应用:购物车、客户登录

对于IE浏览器有UserData,大小是64k,只有IE浏览器支持。

目标

存储方式:

以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。

大小:

每个域名5M

支持情况:

注意:IE9 localStorage不支持本地文件,需要将项目署到服务器,才可以支持!

常用的API:

getItem //取记录

setIten//设置记录

removeItem//移除记录

key//取key所对应的值

clear//清除记录

存储的内容:

数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。

本地缓存应用所需的文件

使用方法:

①配置manifest文件

页面上:

Manifest 文件:

manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

manifest 文件可分为三个部分:

①CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存

②NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存

③FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

完整demo:

服务器上: manifest文件需要配置正确的MIME-type,即 "text/cache-manifest"。

如Tomcat:

常用API:

核心是applicationCache对象,有个status属性,表示应用缓存的当前状态:

0(UNCACHED) : 无缓存, 即没有与页面相关的应用缓存

1(IDLE) : 闲置,即应用缓存未得到更新

2 (CHECKING) : 检查中,即正在下载描述文件并检查更新

3 (DOWNLOADING) : 下载中,即应用缓存正在下载描述文件中指定的资源

4 (UPDATEREADY) : 更新完成,所有资源都已下载完毕

5 (IDLE) : 废弃,即应用缓存的描述文件已经不存在了,因此页面无法再访问应用缓存

相关的事件:

表示应用缓存状态的改变:

checking : 在浏览器为应用缓存查找更新时触发

error : 在检查更新或下载资源期间发送错误时触发

noupdate : 在检查描述文件发现文件无变化时触发

downloading : 在开始下载应用缓存资源时触发

progress:在文件下载应用缓存的过程中持续不断地下载地触发

updateready : 在页面新的应用缓存下载完毕触发

cached : 在应用缓存完整可用时触发

Application Cache的三个优势:

① 离线浏览

② 提升页面载入速度

③ 降低服务器压力

注意事项:

1. 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)

2. 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存

3. 引用manifest的html必须与manifest文件同源,在同一个域下

4. 浏览器会自动缓存引用manifest文件的HTML文件,这就导致如果改了HTML内容,也需要更新版本才能做到更新。

6. FALLBACK中的资源必须和manifest文件同源

7. 更新完版本后,必须刷新一次才会启动新版本(会出现重刷一次页面的情况),需要添加监听版本事件。

8. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问

9. 当manifest文件发生改变时,资源请求本身也会触发更新

离线缓存与传统浏览器缓存区别:

1. 离线缓存是针对整个应用,浏览器缓存是单个文件

2. 离线缓存断网了还是可以打开页面,浏览器缓存不行

3. 离线缓存可以主动通知浏览器更新资源

关系数据库,通过SQL语句访问

Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。

支持情况:

Web SQL 数据库可以在最新版的 Safari, Chrome 和 Opera 浏览器中工作。

核心方法:

①openDatabase: 这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。

②transaction: 这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。

③executeSql: 这个方法用于执行实际的 SQL 查询。

打开数据库:

执行查询操作:

插入数据:

读取数据:

由这些操作可以看出,基本上都是用SQL语句进行数据库的相关操作,如果你会MySQL的话,这个应该比较容易用。

索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。

异步API:

在IndexedDB大部分操作并不是我们常用的调用方法,返回结果的模式,而是请求——响应的模式,比如打开数据库的操作

这样,我们打开数据库的时候,实质上返回了一个DB对象,而这个对象就在result中。由上图可以看出,除了result之外。还有几个重要的属性就是onerror、onsuccess、onupgradeneeded(我们请求打开的数据库的版本号和已经存在的数据库版本号不一致的时候调用)。这就类似于我们的ajax请求那样。我们发起了这个请求之后并不能确定它什么时候才请求成功,所以需要在回调中处理一些逻辑。

关闭与删除:

数据存储:

indexedDB中没有表的概念,而是objectStore,一个数据库中可以包含多个objectStore,objectStore是一个灵活的数据结构,可以存放多种类型数据。也就是说一个objectStore相当于一张表,里面存储的每条数据和一个键相关联。

我们可以使用每条记录中的某个指定字段作为键值(keyPath),也可以使用自动生成的递增数字作为键值(keyGenerator),也可以不指定。选择键的类型不同,objectStore可以存储的数据结构也有差异。

学习从来不是一个人的事情,要有个相互监督的伙伴,想要学习或交流前端问题的小伙伴可以私信“学习”小明获取web前端入门资料,一起学习,一起成长!

⑨ 前端本地数据存储localStorage

场景1、 调用登录接口,当后端含此放回登录成功后,此时需要把用户令牌token存储
场景2、当用户操作时检测当前的时间,如果当前的时间超过拟定的时间 就把登录信肢州息清空,并谈饥迅返回登录页面

⑩ 前端存储方式有哪些

1.本地存储localstorage
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
存储方式:
以键值对雹行锋(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
2.本地存储sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页源晌面后即带悔被清空,而 localStorage 则会一直保存。
3.离线缓存(application cache)

热点内容
php取整 发布:2025-02-12 04:33:21 浏览:221
我的世界创造服务器位置 发布:2025-02-12 04:24:49 浏览:701
毛利润算法 发布:2025-02-12 04:22:42 浏览:754
战舰少女r红茶脚本 发布:2025-02-12 04:05:05 浏览:465
峰火战国服务器什么时候开 发布:2025-02-12 03:56:31 浏览:175
电脑配置慢怎么解压 发布:2025-02-12 03:52:18 浏览:716
androidsdk功能 发布:2025-02-12 03:43:07 浏览:87
阿里云服务器可以访问外网吗 发布:2025-02-12 03:42:20 浏览:880
脚本的生命周期顺序 发布:2025-02-12 03:37:28 浏览:369
素数加密 发布:2025-02-12 03:37:27 浏览:803