js 前端过滤器 实现图片缓存与版本控制更新的功能?

JavaScript017

js 前端过滤器 实现图片缓存与版本控制更新的功能?,第1张

兄台多虑了,以我个人见解,这个功能应该是前端js搞不定,你js什么时候加载就是个问题,第二个问题就是js也检测不到网络请求,那是浏览器干的事。

但是针对缓存这事,一个是在服务端设置,也就少web服务或者少CDN那设置缓存。很多情况下,图片,css都是默认缓存的,你打开开发者工具之后确保禁用缓存的复选框取消,你刷新一下,看看那图片、css是不是就是304状态。

有时候在更改js文件后,页面并没有及时显示出来,可能由于修改的文件不对,或者存在缓存问题。

面对的缓存问题有两个:

一是页面引入的js文件缓存。

二是js请求后台的缓存。

解决方法:

对于第一种情况,有两种处理方式:1、可以在页面引入的js文件后面增加日趋,如果不经常改动的文件,可以在每次改动后修改后缀。<script type="text/javascript" src="scripts/jquery-1.5.2.min.js?version=1"></script>

2、修改js文件的名字,如<script type="text/javascript" src="scripts/jquery.js"></script>

对于第二种情况,一般的处理方式是在请求的路径后面加上毫秒值,这样每次请求的路径都不一样,但是对于后台来说都是一样的,用来欺骗浏览器,进行实时请求,不调用浏览器缓存。

window.open就自动下载了。

但是图片可以是svg的话

function saveAs(Url,filename){

var blob=new Blob([''], {type:'application/octet-stream'})

var url = webkitURL.createObjectURL(blob)

var a = document.createElementNS(xhtml,'a')

a.href = Url

a.download = filename

var e = document.createEvent('MouseEvents')

e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)

a.dispatchEvent(e)

webkitURL.revokeObjectURL(url)