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

浏览器缓存机制你知道多少?(转载)

先来给大家解释一下概念,浏览器缓存,英文为BrowserCaching,是浏览器端保存数据用于快速读取或避免重复资源请求的优化机智,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本

  先来给大家解释一下概念,浏览器缓存,英文为Browser Caching,是浏览器端保存数据用于快速读取或避免重复资源请求的优化机智,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户清除浏览器缓存

  一、http缓存

  协议的浏览器文件级缓存机制清除浏览器缓存

  以下是浏览器缓存的整个机制流程清除浏览器缓存。主要是针对重复的步:

  1.判断expires清除浏览器缓存,如果未过期,直接读取请求,否则进入下一步

  2.判断etag清除浏览器缓存,判断文件是否修改,如果修改,则带上if-none-match发送请求,返回200或304,否则进入下一步

  3.判断last-modified,判断文件是否超过最大缓存时间,则带上if-modified-since发送请求,返回200或304,否则直接不带发送请求清除浏览器缓存

浏览器缓存机制你知道多少<strong></p><p>清除浏览器缓存</strong>?(转载)

  如果通过etag和last-modified判断,即使返回304有至少有一次参数可以减少较多的浏览器请求。
  二、COOKIE

  COOKIE或COOKIEs,指一般网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密的数据)

清除浏览器缓存

。COOKIE一般通过记录主要由键、值、域、过期时间、大小组成,一般用户保存用户的认证信息。
  不同域名之间的COOKIE信息是独立的,如果需要设置共享可以在服务器端设置COOKIE的path和domain来实现共享

清除浏览器缓存

。浏览器端也可以通过document.COOKIE来获取COOKIE,并通过js浏览器端也可以方便地读取/设置COOKIE的值。
  COOKIE最大长度和域名个数由不同浏览器决定

清除浏览器缓存

,具体如下:

浏览器缓存机制你知道多少<strong>清除浏览器缓存</p>?(转载)

  三、application cache

  application cahce是将大部分图片资源、js、css等静态资源放在manifest文件配置中

清除浏览器缓存

。当页面打开时通过manifest文件来读取本地文件或是请求服务器文件。   离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用ApplicationCache 接口可以解决由离线带来的部分难题。前提是你需要访问的web页面至少被在线访问过一次。   使用缓存接口可为您的应用带
  来以下三个优势:

  1.离线浏览 – 用户可在离线时浏览您的完整网站

  2.速度 – 缓存资源为本地资源,因此加载速度较快

清除浏览器缓存


  3.服务器负载更少 – 浏览器只会从发生了更改的服务器下载资源

清除浏览器缓存


  四、indexDB

  IndexedDB 是一个为了能够在客户端存储可观数量的结构化数据,并且在这些数据上使用索引进行高性能检索的 API

清除浏览器缓存

。虽然 DOM 存储 对于存储少量数据是非常有用的,但是它对大量结构化数据的存储就显得力不从心了。IndexedDB 则提供了这样的一个解决方案。  
  IndexedDB 分别为同步和异步访问提供了单独的 API

清除浏览器缓存

。同步 API 本来是要用于仅供 Web Workers 内部使用,但是还没有被任何浏览器所实现。异步 API 在 Web Workers 内部和外部都可以使用,另外浏览器可能对indexDB有50M大小的限制,一般用户保存大量用户数据并要求数据之间有搜索需要的场景。
  1.异步API

  异步 API 方法调用完后会立即返回,而不会阻塞调用线程

清除浏览器缓存

。要异步访问数据库,要调用 window 对象 indexedDB 属性的 open() 方法。该方法返回一个 IDBRequest 对象 (IDBOpenDBRequest);异步操作通过在 IDBRequest 对象上触发事件来和调用程序进行通信。

浏览器缓存机制你知道多少<strong>清除浏览器缓存</p>?(转载)

  2.同步API

  规范里面还定义了 API 的同步版本

清除浏览器缓存

。同步 API 还没有在任何浏览器中得以实现。
  五、websql

  websql这种方式只有较新的chrome浏览器支持

清除浏览器缓存

,并以一个独立规范形式出现,主要有以下特点:
  1.Web Sql 数据库API 实际上不是HTML5规范的组成部分;

  2、在HTML5之前就已经存在了

清除浏览器缓存

,是单独的规范;
  3.它是将数据以数据库的形式存储在客户端

清除浏览器缓存

,根据需求去读取;
  4.跟Storage的区别是: Storage和COOKIE都是以键值对的形式存在的;

  5.Web Sql 更方便于检索

清除浏览器缓存

,允许sql语句查询;
  6.让浏览器实现小型数据库存储功能;

  7.这个数据库是集成在浏览器里面的

清除浏览器缓存

,目前主流浏览器基本都已支持;
  websql API主要包含三个核心方法:

  1、openDatabase : 这个方法使用现有数据库或创建新数据库创建数据库对象

清除浏览器缓存


  2、transaction : 这个方法允许我们根据情况控制事务提交或回滚

清除浏览器缓存


  3、executeSql : 这个方法用于执行真实的SQL查询

清除浏览器缓存


  文章载自:


推荐阅读
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
author-avatar
CrazyThree
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有