热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

重访HTML5本地存储

本地存储是部分HTML5 Web存储API ,它允许您将数据存储在浏览器中。 不像饼干,使用本地存储,存储的数据不会被发送回服务器。 在客户端上的所有数据住宿,并且可以存储目前从2MB到10MB。 此限制是联系在一起的特定的浏览器,协议(HTTP或HTTPS),端口和顶层中使用的域。

在这篇文章中,我们将讨论如何使用这个API来提高网站的性能。 我假设你知道什么是本地存储和方法暴露出来,但如果你需要复习我建议你阅读文章Web存储API的概述科林Ihrig。

可用磁盘空间

在我们开始之前的本地存储的讨论中,我想给你的可用磁盘空间的概述主要的移动和桌面浏览器。 下表是基于文章“用在移动浏览器配额工作” 。

移动浏览器:

浏览器 Android浏览器 火狐 iOS的Safari浏览器
40 4.3 34 6-8
可用空间 10MB 2MB 10MB 5MB

桌面浏览器:

浏览器 歌剧 火狐 苹果浏览器 IE浏览器
40 27 34 6-8 9-11
可用空间 10MB 10MB 10MB 5MB 10MB

本地缓存VS本地存储

当使用本地存储,你的数据会留在客户端上,并在会话和设备重新启动依然存在。 正如我在介绍中提到的,本地存储API的限制是依赖于特定的浏览器(如前面的表中),协议,端口,并且在使用中***域名。 相比之下,在浏览器的原生高速缓存的可用空间跨网站共享,这是在移动设备上要小得多。 它被频频刷新,有时甚至同一个访问中。 移动设备有一个额外的问题:他们比桌面设备不那么强大,因此获得优异性能是必须的。

已经有很多关于本地存储性能的讨论。 例如,基督教海尔曼,以前与Mozilla的,写了“有本地存储没有简单的解决方案” 。 本地存储可以有一个性能命中如果不小心使用。 你需要考虑的第一件事是,它是一个同步API,因此块的主UI线程。 本地存储器写入和读取从硬盘驱动器,其可以是比从存储器读取一个更昂贵的操作的数据。 为了给您访问的数据,本地存储需要从磁盘读取数据,并在性能损失发生时的。 这种性能是无法与少量数据的一个主要问题,但它可以明显的使用完整的存储限制。

作为一个很好的做法,你应该尝试执行尽可能少的读取越好。 此外,因为我们面对的是一个同步API,你应该尝试读取本地存储的数据后,才window.onload事件已触发,以避免阻塞UI线程。

事情变了

但事情好起来。 通过发表文章, 彼得·穆尔 Mobify解释说, 本地存储可以比移动设备上的本地高速缓存快5倍是 。

重访HTML5本地存储

在同一篇文章的附录 ,你可以看到本地存储在移动浏览器和多少它提高了性能的演变。 你也可以看到,本地存储一直比本地高速缓存快。

谁在使用本地存储?

最近有一些使用本地存储高速缓存的资产,如网站的情况下, 监护人谁正在使用本地存储的关键路径CSS。 您可以查看此演示文稿以速度2014年会议给予更多地了解它们是如何能够做到这一点。

也碎杂志最近开始在本地存储缓存Web字体。 在这篇文章中关于最近在其网站上实施的,他们的报告推迟网页字体,并在变化导致的最有效的改进中本地存储缓存他们一些性能改进。

秘密浏览的注意事项

由于在报道caniuse.com ,标签下的已知问题,在私人或隐身模式下运行时,Safari浏览器,Safari浏览器的iOS和Android的浏览器不支持设置在本地存储中的项目。

其他浏览器如Chrome和Firefox允许您将数据存储在属于私人模式的本地存储,但是当你退出私人模式的数据被清除。 这是由于隐私问题,因为有人可能会使用的持久性数据,了解用户的行为,当私人模式。

如果以前的会话下设定一个预期值,在随后的访问是有这个问题可能会破坏您的应用程序的行为。 因此,为了安全地使用本地存储,这是一个很好的做法,不仅要测试的支持,同时也用于测试的能力来获取和设置项目。

有关在私密模式,并就如何检查在不同浏览器本地存储内容的本地存储行为的详细信息,您可以使用文章“不要忘记检查隐私浏览模式时测试”作为参考。

结论

也许它的时候,我们开始重新审视本地存储和其潜在的使用,尤其是在这里我们可以用它来避免延迟瓶颈的移动设备。 我们可以开始用新方式来缓存我们的资产,然后立即为他们服务于我们的用户的思维。 我们已经看到,已经有非传统的方式本地存储使用的一些成功实施。

From: https://www.sitepoint.com//html5-local-storage-revisited/


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • CSS|网格-行-结束属性原文:https://www.gee ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • 使用python输入PDF编号自动下载freepatentsonline.com的文档#!usrbinenvpython3#codingutf-8#Version:python3. ... [详细]
author-avatar
红台门
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有