浏览器相关前端开发事项

文章目录

    • 存储
      • 浏览器持久化存储(F12->应用->存储)
      • 浏览器缓存(F12->内存)
      • 浏览器存储管理单位(域名/IP为单位)
      • 区别
        • localStorage VS 浏览器缓存
        • localStorage VS cookies

存储

浏览器持久化存储(F12->应用->存储)

在浏览器中存储数据的机制包括以下几种:

  1. localStorage:用于在浏览器中存储持久化数据,数据会一直保存在用户的浏览器中,直到被显式删除或被网站的代码覆盖。

  2. sessionStorage:类似于 localStorage,但是存储的数据在浏览器会话结束时被清除。会话结束可以是用户关闭浏览器窗口或标签页,或者浏览器执行了特定的清除操作。

  3. cookies:小型的文本文件,由网站服务器通过 HTTP 响应头设置并存储在用户浏览器中。cookies 可以包含有关用户的信息,如身份验证令牌、偏好设置等。与 localStoragesessionStorage 不同,cookies 在每个 HTTP 请求中都会被发送到服务器。

  4. IndexedDB:一种客户端数据库,用于在浏览器中存储结构化数据。它提供了一组丰富的 API,允许您存储、检索和操作大量数据。

  5. Web SQL Database:一种基于 SQL 的客户端数据库,已被废弃,不推荐在新的项目中使用。

这些机制各有特点和适用场景,您可以根据需求选择合适的机制来存储数据。
在这里插入图片描述

浏览器缓存(F12->内存)

浏览器缓存是指浏览器在访问网页时将某些资源临时存储在本地的一种机制。当用户再次访问同一个网页时,浏览器可以从本地缓存中加载资源,而不需要重新下载。这可以提高网页加载速度,减少网络请求,节省带宽。

浏览器缓存可以存储各种类型的资源,包括 HTML 文件、CSS 文件、JavaScript 文件、图像、字体文件等。这些资源在首次加载时会被浏览器下载并缓存起来。当用户再次访问同一网页时,浏览器会检查缓存中是否存在该资源的副本,并根据缓存策略决定是否使用缓存的资源。

浏览器缓存的好处包括:

  1. 加快网页加载速度:使用缓存的资源可以直接从本地加载,减少了网络请求和传输时间,提高了网页加载速度。

  2. 减少网络流量:使用缓存的资源不需要重新下载,可以节省用户的网络流量。

  3. 减轻服务器负载:缓存机制可以减少对服务器的请求,降低了服务器的负载压力。

浏览器缓存可以通过设置响应头的缓存控制字段(如 Cache-Control 和 Expires)以及使用版本号或文件指纹等方式进行管理和控制。开发人员可以通过适当的缓存策略来平衡缓存效果和资源更新的需求,以提供更好的用户体验和网站性能。

浏览器存储管理单位(域名/IP为单位)

localStorage、sessionStorage、cookie和IndexedDB都是基于域名/IP进行区分隔离的,不同域名/IP的存储crud相互独立。

  • localStorage和sessionStorage是HTML5 Web Storage API提供的浏览器本地存储机制。它们会将数据存储在浏览器中,但仅限于特定的域名和协议。不同的域名之间的localStorage和sessionStorage是相互隔离的,每个域名都拥有自己独立的存储空间。

  • cookie是由服务器在HTTP响应中设置的小型文本文件,存储在用户的浏览器中。每个cookie都包含一个域名属性,浏览器会根据域名来区分和管理cookie。不同的域名拥有各自独立的cookie存储空间,它们之间是隔离的。

  • IndexedDB是浏览器提供的一种高性能、非关系型的本地数据库。IndexedDB也是基于域名进行区分的,每个域名都有自己独立的IndexedDB存储空间。不同域名之间的IndexedDB是相互隔离的,无法直接共享数据。

总结起来,无论是localStorage、sessionStorage、cookie还是IndexedDB,都是基于域名进行区分的,每个域名都有自己独立的存储空间,不同域名之间的存储是相互隔离的。这样设计可以保证不同网站之间的存储数据不会相互冲突。

区别

localStorage VS 浏览器缓存

localStorage和浏览器缓存是两种不同的存储机制。

  1. localStorage(本地存储)是浏览器提供的一种持久化存储方式,可以将数据以键值对的形式存储在浏览器中。localStorage中存储的数据不会因为页面刷新或关闭浏览器而被清除,除非主动删除或清除浏览器缓存( localStorage.clear();)。localStorage适合用于存储较小量的数据,例如用户的偏好设置、登录状态等。

  2. 浏览器缓存是浏览器在访问网页时将某些资源临时存储在本地的一种机制。浏览器缓存可以分为强缓存和协商缓存两种方式。强缓存是通过设置响应头的缓存控制字段(如Cache-Control和Expires)来告诉浏览器在一定时间内直接使用缓存的资源。协商缓存是通过设置响应头的ETag和Last-Modified字段,浏览器在下一次请求时发送If-None-Match和If-Modified-Since字段,由服务器判断资源是否有更新,并返回新的资源或告诉浏览器继续使用缓存的资源。浏览器缓存适合用于存储静态资源文件(如CSS、JavaScript、图片等),可以减少网络请求和加快网页加载速度。

总结起来,localStorage是一种用于持久化存储少量数据的机制,而浏览器缓存是一种用于临时存储网页资源的机制,可以加快网页加载速度。它们的使用场景和存储特性不同,开发人员可以根据具体需求选择适合的存储机制。

localStorage VS cookies

localStorage和cookies是两种不同的浏览器存储机制,它们有以下区别:

  1. 存储容量:cookies的存储容量通常较小,一般限制在几KB到几MB之间,而localStorage的存储容量通常较大,可以达到几十MB甚至更多。

  2. 数据传输:cookies在每次HTTP请求时都会被自动发送到服务器,这会增加数据传输量。而localStorage存储在客户端浏览器中,不会自动发送到服务器,只有在前端JavaScript代码中进行手动操作时才会被使用。

  3. 过期时间:cookies可以设置过期时间,可以指定在一定时间后失效。而localStorage则没有过期时间,数据会一直保留在浏览器中,直到被手动删除或清除浏览器缓存。

  4. 跨域访问:cookies在跨域请求时会自动发送到服务器,而localStorage只能在同源的页面间进行访问。

  5. 安全性:cookies可以设置为只在HTTPS连接时传输,从而提供一定的安全性。而localStorage在浏览器中存储的数据相对较为安全,不会随着HTTP请求被发送到服务器。

总的来说,cookies适合用于存储少量的、需要在每次HTTP请求中发送到服务器的数据,如用户身份验证信息。而localStorage适合用于存储较大量的数据,用于客户端浏览器的本地存储,不需要频繁与服务器交互。开发人员可以根据具体的需求和安全要求选择合适的存储机制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/26721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CORS策略: Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed导致的跨域问题】

引起跨域CORS报错的原因有很多种!!!!! 这里我的报错属于最后一条。 探索的原因 正常axios请求接口,调试接口时出现以下问题 Access to XMLHttpRequest at http://192.168.31.111:9000/api/user/sessio…

皮卡丘../../(目录遍历)/敏感信息泄露/PHP反序列化

一.目录遍历 1.概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中…

【MySQL数据库 | 第四篇】SQL通用语法及分类

目录 🤔SQL通用语法: 😊语句: 😊注释: 🤔SQL语句分类: 😊1.DDL语句: 😊2.DML语句: 😊3.DQL语言: &…

C++STL库之map

文章目录 关于仿函数stackdeque(双端对列)queuepriority_queuemap(重点)set(去重) 关于仿函数 //C不能重载的运算符sizeof、 ::、 ? :、 .、 *、 class Add { public:int operator()(int a, int b)const{return a b;} }; //函数对象,仿函数…

2022年长三角高校数学建模竞赛C题隧道的升级改造与设计解题全过程文档及程序

2022年长三角高校数学建模竞赛 C题 隧道的升级改造与设计 原题再现: 某地现存一旧式双洞隧道,现计划将该隧道在旧貌基础上升级改造。在升级改造前,需进行定标与设计。考虑到该隧道洞壁附着特殊涂料,无人机在洞内通信信号较差&am…

LIBEVENT 框架

LIBEVENT 框架 LAMPlibevent特点:libevent的功能libevent官网安装步骤Linux下libevent主要API介绍libevent使用步骤libevent 编程案例LAMP 从LAMP说起: 是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的自由软件 Linux - 操作系统Apache - 网页服务器MySQL - 数据…

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

从本篇博客正式开始深度学习项目的记录,实例代码只会放通用的代码,数据集和训练数据也是不会全部放出。 系列文章: 基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注 基于Yolov5目标检测的物体分类…

Data Distillation: A Survey

本文是蒸馏学习综述系列的第二篇文章,Data Distillation: A Survey的一个翻译 数据蒸馏:综述 摘要1 引言2 数据蒸馏框架2.1 元模型匹配的数据蒸馏2.2 梯度匹配的数据蒸馏2.3 轨迹匹配的数据蒸馏2.4 分布匹配的数据蒸馏2.5 因式分解的数据蒸馏 3 数据模态…

python中Requests发送json格式的post请求方法

问题:做requests请求时遇到如下报错: {“code”:“500”,“message”:"JSON parse error: Cannot construct instance of com.bang.erpapplication.domain.User (although at least one Creator exists): no String-argument constructor/factory …

16.2:岛屿数量问题

文章目录 岛屿数量问题方法一:采用递归的方法方法二:使用并查集的方法(map)方法三:使用并查集的方法(数组) 岛屿数量问题 测试链接:https://leetcode.com/problems/number-of-islan…

C++ string类-2

at at 函数是在C还没有支持运算符重载的时候提供的。 他可以像 [] 重载运算符一样&#xff0c;找到某个位置的字符&#xff1a; string s1("hello world");s1.at(0) x;cout << s1 << endl; 输出&#xff1a; [] 重载运算符和 at&#xff08;&#x…

8自由度并联腿机器狗实现行走功能

1. 功能说明 本文示例将实现R309a样机8自由度并联腿机器狗行走的功能。 2. 并联仿生机器人结构设计 机器狗是一种典型的并联仿生四足机器人&#xff0c;其腿部结构主要模仿了四足哺乳动物的腿部结构&#xff0c;主要由腿部的节段和旋转关节组成。在设计机器狗的腿部结构时&…

echart实现地图展示

最近做的页面中需要展示省级地图精确到市级且悬浮到地区上时会显示一些信息 然后参考了网址&#xff1a; “绿色金融” - 江西省 - category-work,geo地理坐标,legend,series-map地图,series-scatter散点图,title标题,tooltip提示框,visualMap视觉映射 - makeapie echarts社区…

【玩转Linux操作】硬链接和软连接

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 欢迎大家访问“在下小吉.”&#xff08;偷偷告诉你这个是我的大号哦&#…

yolov8seg模型转onnx转ncnn

yolov8是yolo的最新版本&#xff0c;可做图像分类&#xff0c;目标检测&#xff0c;实例分割&#xff0c;姿态估计。 主页地址 这里测试一个分割模型。 模型如下 选yolov8n-seg模型&#xff0c;转成onnx&#xff0c;再转ncnn测试。 yolov8s-seg的ncnn版可以直接用这个 如果用…

【Django 网页Web开发】07. 快捷的表单生成 Form与MoudleForm(保姆级图文)

目录 注意 正规写法是 ModelForm&#xff0c;下面文章我多实现效果url.py新建3个html文件数据库连接model.py 数据表1. 原始方法view.pytestOrgion.html 2. Form方法view.pytestForm.html 3. MoudleForm方法给字段设置样式面向对象的思路&#xff0c;批量添加样式错误信息的显示…

搜索算法(三) 回溯法

1.回溯法 回溯法可以理解成一种特殊的深度优先算法&#xff0c;比起普通的DFS&#xff0c;多了还原当前节点的一步。 修改当前节点、递归子节点、还原当前节点。 本质是一种试错的思想。 维基百科&#xff1a; 2.例题 1&#xff09; 力扣https://leetcode.cn/problems/pe…

17_Linux根文件简介与Busybox构建文件系统

目录 根文件系统简介 文件目录简介 BusyBox简介 编译BusyBox构建根文件系统 修改Makefile添加编译器 busybox中文字符支持 配置 busybox 编译busybox 向根文件系统添加lib库 向rootfs的“usr/lib”目录添加库文件 创建其他文件夹 根文件系统初步测试 根文件系统简介…

行业应用|立仪光谱共焦位移传感器在玻璃方面的检测

项目&#xff1a;玻璃管管壁单边测厚 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 检测方案 用D35A7镜头对玻璃管管壁进行单边测厚&#xff0c;取三个点静态测量厚度并记录重复性。 1、采用D35A7R2S35镜头对玻璃管管…

Android Input子系统 - kernel

目录 前言 数据结构 输入子系统流程 前言 上一节有展示Android Input子系统的架构图,这里我们关心Linux kernel层 可以看到kernel层分为三层: 输入子系统设备驱动:处理与硬件相关的信息,调用input API注册输入设备,并把数据往上报 输入子系统核心层:为事件处理层和设…