首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何让浏览器缓存文件

浏览器缓存 想知道如何不缓存文件,就需要先了解浏览器是怎么判断是否要缓存文件的。这里要引出一个概念,那就是浏览器缓存。...这可以让缓存更高效,并节省带宽,因为如果内容没有改变,Web服务器不需要发送完整的响应。而如果内容发生了变化,使用ETag有助于防止资源的同时更新相互覆盖。...「缓存静态资源」 对于应用程序中不会改变文件,你通常可以在发送响应头前添加积极缓存。这包括例如由应用程序提供的静态文件,例如图像,CSS文件和JavaScript文件。...那么可以考虑将需要动态替换的文本配置放入.env文件,并在打包的时候,将.env文件的配置暴露出去成为JS文件,这样就可以打包后进行修改JS文件,让配置实时生效。...打包后可以修改配置文件里的值,并且确保浏览器不会对该文件进行缓存后,刷新浏览器便可以得到最新的替换文本。这里我采用了使用随机数的方式来让浏览器缓存文件

2.4K30

WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存

在开发WordPress 主题的时候,如果频繁更新主题的CSS、JS文件但主题已经上线,如何让访客的浏览器获取最新的CSS、JS文件而非等到浏览器删除缓存后?下面就介绍一个简单的方法。...即原来比如说css 文件路径代码是如下面的: http://devework.com/wp-content/themes/Devework/style.css 那么如果更新了css 文件,可以为此添加版本号...将下面的代码添加到主题的functions.php 文件下即可为styl.css 文件添加时间戳版本号: add_action( 'wp_enqueue_scripts', 'add_styles' ).../css/style.css', NULL, filemtime($css_file) ); } js文件的话依照上面的照搬即可实现。...如此一来,就能保证浏览器每次访问都是最新的css、js文件,而非采用缓存。 本文参考国外网站paulund,感谢原作者!如有错误,欢迎雅正!

4.9K100

WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存

在开发WordPress 主题的时候,如果频繁更新主题的CSS、JS文件但主题已经上线,如何让访客的浏览器获取最新的CSS、JS文件而非等到浏览器删除缓存后?下面就介绍一个简单的方法。...即原来比如说css 文件路径代码是如下面的: http://devework.com/wp-content/themes/Devework/style.css 那么如果更新了css 文件,可以为此添加版本号...将下面的代码添加到主题的functions.php 文件下即可为styl.css 文件添加时间戳版本号: add_action( 'wp_enqueue_scripts', 'add_styles' ).../css/style.css', NULL, filemtime($css_file) ); } js文件的话依照上面的照搬即可实现。...如此一来,就能保证浏览器每次访问都是最新的css、js文件,而非采用缓存。 本文参考国外网站paulund,感谢原作者!如有错误,欢迎雅正!

4.7K80

WebPack插件实现:打包之后自动混淆加密JS文件

在WebPack中调用JShaman,实现对编译打包生成的JS文件混淆加密一、插件实现1、插件JShamanObfuscatorPlugin.js,代码:class JShamanObfuscatorPlugin...JShamanObfuscatorPlugin', (compilation, callback) => {Object.keys(compilation.assets).forEach((fileName) => {// 检查文件名是否以...stringArray: "true",//阵列字符串加密stringArrayEncoding: "false",//禁用命令行输出disableConsoleOutput: "false",//反浏览器调试...();} else {console.error("向JShaman.com发送请求时出现错误:", json_res, "混淆加密失败...");}// 更新compilation.assets中的文件内容为混淆后的代码...obfuscatedCode,size: () => obfuscatedCode.length,};} catch (error) {console.error(error);// 在这里可以决定如何处理错误,比如跳过当前文件或抛出异常

17620

通过 Node.js 小示例学习浏览器缓存策略

缓存策略 浏览器端发起请求之后不会直接向服务器请求数据,直接先到达强缓存阶段,如果强缓存命中直接返回,如果没有命中进入下一阶段协商缓存策略。 2....,为什么静态资源文件改变后,再次发起请求还是之前的内容,没有变化呢?...先回答第一个问题 在页面中引入静态资源文件,为什么静态资源文件改变后,再次发起请求还是之前的内容,没有变化呢?...是因为我们请求的 url /script.js 没有变,那么浏览器就不会经过服务端的验证,会直接从客户端缓存去读,就会导致一个问题,我们的js静态资源更新之后,不会立即更新到我们的客户端,这也是前端开发中常见的一个问题...,我们是希望浏览器缓存我们的静态资源文件js、css、img等)我们也不希望服务端内容更新了之后客户端还是请求的缓存的资源, 回答第二个问题 在使用webpack等一些打包工具时,为什么要加上一串hash

1.3K30

如何浏览器里用js解析excel文件

上篇文章给大家介绍了如何借助nodejs平台解析操作excel,今天给大家介绍如何在浏览器端使用js解析操作excel。...在文章开始之前我们要搞明白一件事情,那就是在浏览器端用js操作excel主要来做什么呢? 主要做两件事情读和写,对就是这两件事情,在浏览器端针对Excel操作的所有需求无非就是读和写。...页面中引入这个js文件之后会有一个全局变量XLSX ? , 这个全局变量有许多属性方法如图: ? 咱们只介绍最常用的三个,上图已经用红线画出来了,read,utils,writeFile三个方法。...那么这里就出现了一个问题,我们如何能拿到excle文件的二进制数据呢? 这里又牵扯出了一个问题,浏览器如何读取excel文件的二进制数据,这里需要用到HTML5规范的一个新特性FileReader。...以上便是浏览器借助js读取excel文件,代码量不多但稍微有点繁琐,涉及到了FileReader这个html5的新特性。

10K52

js清除浏览器缓存的几种方法(项目总结)「建议收藏」

因为微信 公众号上有这样一个机制,使用版本好的话,有时做不到及时刷新,所以就用了vue.js,因为它有这样的功能就是如果某个文件里面的数据改变了,那么vue.js就会把这个文件的名字也相应的改掉,所以缓存里面的东西...以前没有总结过js关于清除浏览器缓存的方法,今天就借此总结一下吧。 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。... 清理form表单的临时缓存 方式一:用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control.../test.js?"...,所以只有文件更新的时候才进行才是最好的。

12.1K30

浏览器端用JS创建和下载文件

浏览器端用JS创建和下载文件 1 需求 前端需要把获取的数据生成文件让用户下载,按照以往生成 a 标签 href 指向目的文件,不仅需要有已经生成的文件服务器路径,而且很多浏览器支持类型的文件会默认加载而不提示用户选择路径下载...2 解决方案 2.1 下载取代加载:H5标签属性 HTML5 中 a 标签增加了 download 属性,点击链接时浏览器不会打开链接指向的文件,而是改为下载(目前只有chrome、firefox和opera...支持),下载时会直接使用链接的名字来作为文件名(可给 download 加上文件名进行修改,如: download=“file.js”) 2.2 生成文件:DataURI 用js将内容生成文件可以仿照图片...3 改进方案 进一步放宽条件 取消下载类型限制 取消点击过程,直接下载 解决文件类型的问题,可用浏览器新API(URL.createObjectURL)来解决,URL.createObjectURL...通常用来创建图片 DataURI 显示图片,这里用来下载文件,参数是 File对象(通过input[type=file]选择的文件)或 Blob 对象(二进制大对象),让浏览器自动设定文件类型 解决类型限制

4.7K120

禁止IIS缓存静态文件的方法(png,js,html等)

禁止IIS缓存静态文件(png,js,html等)背景: IIS为了提高性能,默认情况下会对静态文件js,html,gif,png等做内部缓存,这个缓存是在服务器iis进程的内存中的。...IIS这么做在很大程度上可以提高静态文件的访问性能,在正常情况下只要静态文件更新了IIS也会更新缓存。但是如果更新的静态文件很多就有可能出现缓存不更新的情况。...这时候直觉是浏览器文件进行了缓存,于是就在IIS的目录上设置Http头:Cache-Control:no-cache,但是无济于事,浏览器请求服务器端得到的状态号是200.这可以说明浏览器确实是从服务器端得到了新的内容...,而非读取浏览器本地缓存。...如何禁止IIS缓存静态文件(png,js,html等): 通过设置Http头不让浏览器缓存的方法在这个场景下是行不通的,因为缓存不是出现的客户端,而是出现在IIS服务器上;所以解决问题还需要从IIS本身入手

2.8K20

浏览器端用JS创建和下载文件 【原创】

浏览器端用JS创建和下载文件 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian...Email: sunjianfeng@csxiaoyao.com QQ: 1724338257 目录导航 浏览器端用JS创建和下载文件 1 需求 2 解决方案 2.1 下载取代加载...,而且很多浏览器支持类型的文件会默认加载而不提示用户选择路径下载 2 解决方案 2.1 下载取代加载:H5标签属性 HTML5 中 a 标签增加了 download 属性,点击链接时浏览器不会打开链接指向的文件...,而是改为下载(目前只有chrome、firefox和opera支持),下载时会直接使用链接的名字来作为文件名(可给 download 加上文件名进行修改,如: download=“file.js”)...【By CS逍遥剑仙】 未经允许不得转载:禅林阆苑 » 浏览器端用JS创建和下载文件 【原创】

2.3K70

HTTP缓存(Cache-Control、Expires 、ETag)

即: 设置这个响应头之后浏览器请求时发现是相同的URL,浏览器直接从内存里返回已经缓存的main.js,没有向服务器发出请求 ? 问题 为什么首页不设置Cache-Control呢?...浏览器请求时发现是相同的URL才使用缓存,那么可以设置查询参数,例如第二个版本的js可以写<script src="./main.<em>js</em>?...可见返回至完全<em>改变</em>了 这个特性可以用来判断两次信息传输是否完整一致 ETag 例子: 例如我们请求一个<em>js</em><em>文件</em>。 设置一个ETag响应头 ?...设置的ETage响应头为这个<em>JS</em><em>文件</em>的MD5值 查看响应: ? 那么:下一次请求这个<em>JS</em>的时候,<em>浏览器</em>会把上一次响应的那个ETage的值放到If-None-Match里面,如图: ?...如果MD5一样,说明<em>文件</em>没改过,那么返回304 304 Not Modified: HTTP 304 未<em>改变</em>说明无需再次传输请求的内容,也就是说可以使用<em>缓存</em>的内容。

5.2K50

html5离线缓存manifest详解

manifest文件主要定义需要缓存文件,支持manifest的浏览器将按照manifest文件的规则把文件保存在本地,这样在没有网络的时候就可以从本地读取缓存文件。...如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了...如果服务器对离线的资源进行了更新,那么必须更新manifest文件之后这些资源才能被浏览器重新下载,如果只是更新了资源而没有更新manifest文件的话,浏览器并不会重新下载资源,也就是说还是使用原来离线存储的资源...对于manifest文件进行缓存的时候需要十分小心,因为可能出现一种情况就是你对manifest文件进行了更新,但是http的缓存规则告诉浏览器本地缓存的manifest文件还没过期,这个情况下浏览器还是使用原来的...onupdateready:当浏览器对离线资源更新完成之后会触发这个事件onnoupdate:当浏览器检查更新之后发现没有资源更新的时候触发这个事件参考文章:https://developer.mozilla.org

1.8K30

vue项目部署的最佳实践

前端页面文件缓存方案 从vue-cli3打包说起 路由使用按需加载后,打包生成的文件,每一个路由页面都对应一个js和css文件,入口main.js及其依赖则打包成了app.js和app.css,公共依赖都放到了...vue-cli3打包后的dist/js文件夹: ? 可以看到,打包生成的js/css/img等文件文件名都带有hash值,当源文件内容改变时,重新打包后对应的文件hash值也会改变。...举个栗子,我们修改了about.vue中js的内容,重新打包时about.js的hash值会改变,以及依赖about.vue的文件app.js的hash值也会改变,而其他没有修改的文件,打包后的hash...仅更新前端页面的前提下,文件名带有hash值还可以实现用户无感知发版:系统更新时,只需要将打包之后文件除index.html以外的文件js/css/img),全部上传到服务器网站目录,未修改文件(即重名文件...服务器配置缓存 理论知识有了,现在我们来实际操作一下:文件名带hash的(即css、js、font和img目录下的所有文件)设置一个月缓存浏览器可以直接使用缓存不需要请求服务器。

1.6K10

JS】1797- 使用 File System Access API 让浏览器拥有操作本地文件的能力

作者: 田八 https://juejin.cn/post/7203701875530039357 在早期我们经常听到这样的说法:浏览器是一个沙盒,它不允许我们操作本地文件,但是现在这个说法已经不再适用了...; 在用户的本地文件系统上创建、重命名和删除文件; 读取本地文件系统上的文件内容。...使用showDirectoryPicker方法时,浏览器会提示用户授权应用程序访问他们的文件系统,请不要拒绝哟。...操作文件 上面我们了解到了如何获取文件和目录,那么我们接下来就来看看如何操作文件和目录。 读取文件 读取文件做过文件上传的同学应该都很熟悉了,我们可以使用FileReader对象来读取文件。...下面是来自caniuse[2]的兼容性数据: 虽然Firefox还不支持,但是在一些实验性的项目上我们可以使用这些API,指定用户使用Chrome浏览器来访问。

78441

前端性能优化(一)——浏览器工作原理

浏览器工作流程: 构建请求:浏览器开启网络请求线程,向服务器发送完整的http请求。 查找缓存:真正发起网络请求之前,浏览器会先在数据存储中查询是否有需要请求的文件。...如果没有任何缓存,说明第一次请求,则进入网络请求过程。当浏览器缓存的时候,会拦截请求,返回缓存,拦截请求。缓存优点:缓解服务器压力,提升性能,实现快速加载资源。...浏览去载入html代码,解析head中的link引入的外部css文件浏览器发出css文件请求,服务器会返回css文件浏览器继续载入body部分代码,css文件接收到之后,就可以渲染页面。...如果用户点击"换肤"按钮,js浏览器换一个css文件,此时浏览去又会向服务器发送请求。 等浏览器返回新的css文件之后,重新渲染页面。 需要注意: js不能并行下载和解析(阻塞下载)。...因为浏览器需要1个稳定的DOM树结构,而JS中很有可能有代码直接改变了DOM树结构,比如使用 document.write 或 appendChild,甚至是直接使用的location.href进行跳转

35030
领券