js缓存问题怎么解决

JavaScript016

js缓存问题怎么解决,第1张

面对的缓存问题有两个:一是页面引入的JS文件缓存。二是JS请求后台的缓存。对于第一种情况,有两种处理方式:

1、可以在页面引入的JS文件后面增加日趋,如果不经常改动的文件,可以在每次改动后修改后缀。

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

个人认为如果它已经被浏览器下载到缓存,而且尚未过期,那么浏览器会优先使用缓存的,虽然浏览器也会向服务器发送文件请求,但如果请求的文件自上次被下载以来没有变更过,实际是不会重复下载的,服务器会返回一个信号,通知浏览器直接使用缓存中的文件,即可起加速作用,又可节省带宽.

如果没有人为干预,浏览器和服务器通常可以自动完成上述过程,不用特别的设计.

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)