//获得缓存路径 self.cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES...).lastObject; /*********************** 缓存管理 ***********************/ #pragma mark 单个文件的大小 + (long...NSFileManager defaultManager]; //判断该文件是否存在 if ([manager fileExistsAtPath:filePath]){ //返回该文件大小...fileSizeAtPath:fileAbsolutePath]; } return folderSize / (1024.0*1024.0); } #pragma mark 清理缓存文件
1.HTML5 Application Cache 缓存文件 文件名称:类似pc.cache,路径和名称可以自定义。...文件内容: CACHE MANIFEST #v5.8(更新客户端缓存文件的话,修改版本号就行了) #需要缓存的文件列表;系统级别的,不经常变的文件可以放在这里; CACHE: ..../js/alloy_finger.js ./js/config.js ./js/cordova.js ./js/cordova_android.js ./js/cordova_plugins.js ..../js/md5.js ./js/json.js ./js/jquery.min.js ./js/jquery.ui.widget.js ..../js/jquery.fileupload.js #不需要缓存的文件列表;与模块相关的动态脚本文件等放在这里; NETWORK: * #代替方案;找不到的资源可以用其他的资源代替 FALLBACK:
说真的,当自己还很小白的时候,明明修改了JS的内容了,但是就是没有加载成功,那时候感觉好神奇,好没道理。后来知道了这是因为缓存的原因。...今天自己学习了一些关于前端缓存的东西,不一定有什么特别的用,仅让自己知道缓存,说不定哪天就用上了。 前端分为HTTP缓存和浏览器缓存。...然后第二次请求的时候浏览器判断这些参数是什么缓存类型,相应的返回。 HTTP缓存有强缓存和协商缓存(也有人叫对比缓存)。...说了这么多,HTTP缓存跟前端有什么关系?确实,大部分HTTP缓存是由服务器完成,关于前端怎么操作的没查到相关的文档,只知道可以通过meta标签禁用缓存和动态设置header。...缓存对于前端的性能优化算是很大的,推荐使用强缓存,然后用hash值的方法消除强缓存的影响。 如果有人知道前端怎么去操作HTTP缓存,希望可以指教一下。 (完)
之前说了HTTP缓存,今天说说本地缓存。本地缓存也是平时开发过程经常用的。 本地缓存就简单多了,我们常用的有三个:cookie、localStorage、sessionStorage。...注意,cookie比较浪费带宽,不建议写入太多内容,这也是前端性能优化的一点。 LocalStorage:localstorage会把内容一直存在浏览器,直到清除浏览器的缓存。...PWA,不知道这个东西在以后会不会火,PWA主要是为了提供跟APP一样,很多东西缓存到本地,也叫作离线缓存就算在没有网的时候也能有内容展示,这也算缓存的一种。...还有一种很容易被忽略的缓存,往返缓存,有点类似单页面应用的history路由模式,就是浏览器的后退前进按钮,主要是为了加快页面的切换速度,不用重新请求,不仅保存了数据,还保存了DOM和JavaScript...这种缓存方式在微信里面也有很多使用。 (完)
在前端js编程中,如果涉及到加密通信、加密算法,经常会用到密钥。但密钥,很容易暴露。暴露原因:js代码透明,在浏览器中可以查看源码,从中找到密钥。...例如,下面的代码中,变量key是密钥:如何保护源码中的密钥呢?很多时候,人们认为需要对密钥字符串进行加密。其实更重要的是对存储密钥的变量进行加密。加密了密钥变量,使变量难以找到,才更能保护密钥本身。...将整体JS代码,再用JS加密工具:JShaman,进行混淆加密:https://www.jshaman.com然后得到更安全、更难调试分析的JS代码,这时密钥就变的更安全了:注:用ajax等异步传递密钥时...用jsfuck+jshaman保护JS中的密钥,你学会了吗?
前端缓存处理 在开发过程中,总有一些使用频率很高的接口,数据内容还不基本不修改的数据。为了提高效率,自然要放到缓存中。 后端将数据放入redis,那么前端放到哪呢?...1.前端的缓存位置区别: 简单说明,详细区别可自行百度。 localStorage: 永久保存,浏览器关闭也不会消失。除非手动清除数据。...sessionStorage:暂时保存,缓存的数据时间是会话级别的。不会永久保存。...我是做java的,js并不是非常熟悉,把这个方案想出来用了一两天的时间。 最开始没有这个方法并没有加异步,写完了这个工具类之后发现系统第一次调用的时候,方法已经结束了但是没有获取到值。...(最开始不太明白js的异步执行规则,后来才知道的) 加上异步之后就可以解决这个问题了,调用的时候会把数据获取到再返回。
一、缓存是什么? 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术,可减少等待时间和网络流量,显著提升网站性能。...--- 1、常见缓存 私有缓存:只能用于单独用户,譬如浏览器缓存; 共享缓存:能被多个用户使用,譬如代理服务器缓存; [http_cache_type] --- 2、什么资源会被缓存?...[查看资源是否使用缓存?] --- 4、查看服务器对缓存的配置?...[HTTP-Staleness] --- 3、缓存验证请求中的头信息 缓存的具体信息(资源id,修改时间等)都在请求头中,服务器对比下这些信息,即可知道缓存是否需要更新。...--- 五、参考文档 # 如何用缓存(Cache)进行前端性能优化?
前言 缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。 本文,重点在与探讨在实际项目中,如何进行缓存的设置,并给出一个较为合理的方案。...所以,最佳实践,就应该是尽可能命中强缓存,同时,能在更新版本的时候让客户端的缓存失效。 在更新版本之后,如何让用户第一时间使用最新的资源文件呢?...机智的前端们想出了一个方法,在更新版本的时候,顺便把静态资源的路径改了,这样,就相当于第一次访问这些资源,就不会存在缓存的问题了。...[chunkhash].js' } 综上所述,我们可以得出一个较为合理的缓存方案: HTML:使用协商缓存。 CSS&JS&图片:使用强缓存,文件命名带上hash值。...后端需要怎么设置 上文主要说的是前端如何进行打包,那后端怎么做呢? 我们知道,浏览器是根据响应头的相关字段来决定缓存的方案的。所以,后端的关键就在于,根据不同的请求返回对应的缓存字段。
在 Axios 如何取消重复请求? 这篇文章中,阿宝哥介绍了在 Axios 中如何取消重复请求及 CancelToken 的工作原理。本文将介绍在 Axios 中如何通过增强默认适配器来缓存请求数据。...接下来,阿宝哥将从如何设计缓存开始,带大家一起来开发缓存请求数据的功能。...二、如何增强默认适配器 Axios 引入了适配器,使得它可以同时支持浏览器和 Node.js 环境。...对于浏览器环境来说,它通过封装 XMLHttpRequest API 来发送 HTTP 请求,而对于 Node.js 环境来说,它通过封装 Node.js 内置的 http 和 https 模块来发送...完整的示例代码:https://gist.github.com/semlinker/b8a7bd5a0a16c2d04011c2c4a8167fbd 三、总结 本文介绍了在 Axios 中如何缓存请求数据及如何设计缓存对象
需求: 1、 重复的请求,使用缓存 2、 不重复的请求,允许发送 3、 连续两次重复的发送,两次返回的结果是一样的,且第二次不发送请求 1、搭建前端服务 vue-cli 一步到位 { if(obj[cityId]) { /** * 如果命中缓存不发送请求了
前言 缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。 本文,重点在于探讨在实际项目中,如何进行缓存的设置,并给出一个较为合理的方案。...所以,最佳实践,就应该是尽可能命中强缓存,同时,能在更新版本的时候让客户端的缓存失效。 在更新版本之后,如何让用户第一时间使用最新的资源文件呢?...机智的前端们想出了一个方法,在更新版本的时候,顺便把静态资源的路径改了,这样,就相当于第一次访问这些资源,就不会存在缓存的问题了。 ?...[chunkhash].js' } 综上所述,我们可以得出一个较为合理的缓存方案: HTML:使用协商缓存。 CSS&JS&图片:使用强缓存,文件命名带上hash值。...补充:后端需要怎么设置 上文主要说的是前端如何进行打包,那后端怎么做呢?我们知道,浏览器是根据响应头的相关字段来决定缓存的方案的。所以,后端的关键就在于,根据不同的请求返回对应的缓存字段。
说到缓存一般针对后台缓存数据,提高数据查询效率,减少响应时间。...不过在前端开发中也会遇到一些需要缓存数据的时候,比如说存储页面查询条件翻页数据、全局变量等,如果小的数据可以存储在cookies中,但是数据多了就不行了,下面介绍下前台缓存的简单实现: /** * cache...undefined){//全局cache,所以不会重新生成cache this.gloableCache[this.scope] = {}; } } } 定义一个构造函数,不同的功能有不同的缓存...,定义缓存基本方法 BaseCache.prototype = { _getPrmGoableCache : function(){ if(top===self){//topest window...this.gloableCache[this.scope]){ delete this.gloableCache[this.scope][key]; } } }; 下面举个例子来使用该缓存
❝ 前端缓存指的是,浏览器对服务器最近请求过的资源进行存储,通过这种方式来达到减少与服务器的交互请求,以此减少对带宽流量的浪费,以及减少了服务器的负担,而浏览器缓存主要分为两种,强缓存和协商缓存 ❞...,beforeDestroy函数,组件将被缓存,不用销毁重新渲染,性能比较好 路由的选择性缓存 // router.js export default new Router({ routes:[..."> 复制代码 打包加入hash ❝ 前端工程化开发,可以使用 Webpack 编译,打包的资源文件路径里自动带有一串随机字符串,称为 hash ❞...在vue cli脚手架中,我们可以通过配置vue.config.js(本质上是配置webpack)来设置编译生成的文件具备hash值,意味着每次打包编译的文件都是唯一的,来防止因为缓存,导致资源没有更新...[hash].js').end(); } } 复制代码 4.2 Nginx的缓存 • 配置expires 假设我想通过web应用的图片缓存一周,那你可以在nginx中配置如下,配置完之后一周之内的资源只会访问浏览器的资源
前端缓存指的是,浏览器对服务器最近请求过的资源进行存储,通过这种方式来达到减少与服务器的交互请求,以此减少对带宽流量的浪费,以及减少了服务器的负担,而浏览器缓存主要分为两种,强缓存和协商缓存 1.强缓存...路由的选择性缓存 // router.js export default new Router({ routes:[ { path: '/test', name: 'test',..."> 打包加入hash 前端工程化开发,可以使用 Webpack 编译,打包的资源文件路径里自动带有一串随机字符串,称为 hash 在vue...cli脚手架中,我们可以通过配置vue.config.js(本质上是配置webpack)来设置编译生成的文件具备hash值,意味着每次打包编译的文件都是唯一的,来防止因为缓存,导致资源没有更新,官方文档...[hash].js').end(); } } 4.2 Nginx的缓存 • 配置expires 假设我想通过web应用的图片缓存一周,那你可以在nginx中配置如下?
前端缓存技术概述 缓存概述 在计算机领域中,缓存是一项十分重要的技术。 在软件开发,亦或者是在硬件设计开发中,缓存对性能的影响是十分显著的。...有人会说,浏览器缓存和前端肯定是有关系的,但是HTTP不是个协议吗,这个怎么缓存?DNS我倒是知道,这玩意儿是请求解析URL对应的IP地址的,这个跟前端又有啥关系?...而且这CDN…… 前端缓存 提到前端缓存,很多人立刻能想到的是浏览器缓存,然后又把浏览器缓存划分两种:1. 强缓存,2. 协商缓存。...“浏览器HTTP缓存”,还有人直接称之为“前端缓存”,其实都在说同一个内容。...服务器缓存 提到服务器,一般来说都和后端是相关的,但是前端也必须要了解一些相关的知识,因为每次出现问题的时候,都是会在前端页面上显示出来,比如说接口500,这时候,测试就来到了我们身边,俯下身子在我们耳边吟唱死亡颂歌
前端js获取当前时间的方法: var time = new Date(); time.getYear(); //获取当前年份 time.getFullYear(); //获取完整的年份(4位,1970
vue-cli里的默认配置,css和js的名字都加了哈希值,所以新版本css、js和就旧版本的名字是不同的,不会有缓存问题。...不过值得注意的是,把打包好的index.html放到服务器里去的时候,index.html在服务器端可能是有缓存的,这需要在服务器配置不让缓存index.html nginx配置,让index.html...不缓存 location = /index.html { add_headerCache-Control"no-cache,no-store"; } no-cache,no-store可以只设置一个...no-cache浏览器会缓存,但刷新页面或者重新打开时会请求服务器,服务器可以响应304,如果文件有改动就会响应200 no-store浏览器不缓存,刷新页面需要重新下载页面
js let formatSize = v => { var s = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']; var e = Math.floor(
缓存的概念分很多种,本次讨论的主要就是前端缓存中的Http缓存。 缓存是怎么回事 前端发送请求主要经历以下三个过程,请求->处理->响应。 如果有多次请求就需要重复执行这个过程。...如何开启Http缓存并对缓存进行设置,是本次讨论的关键。...强制缓存和协商缓存 缓存方法可以分为强制缓存与协商缓存。...ETag如何计算 ETag是针对某个文件的特殊标识,服务器默认采用SHA256算法生成。也可以采用其他方式,保证编码的唯一性即可。...如何合理应用缓存 强制缓存优先级最高,并且资源的改动在缓存有效期内都不会对缓存产生影响,因此该方法适用于大型且不易修改的的资源文件,例如第三方CSS、JS文件或图片资源,文件后可以加上hash进行版本的区分
领取专属 10元无门槛券
手把手带您无忧上云