美文网首页NodeJS笔记
web开发中缓存优化

web开发中缓存优化

作者: JTR354 | 来源:发表于2018-01-06 12:00 被阅读0次

浏览器缓存

  • 强缓存

Expires (Expires:Thu, 30 Dec 2027 11:02:20 GMT)
Cache-Control (Cache-Control:max-age=315360000)

  • 协商缓存

If-Modified-Since / Last-Modified (Last-Modified:Wed, 22 Jun 2011 06:40:43 GMT)
If-None-Match / Etag (Etag:"2c1-4a6473f6030c0")

缓存实现流程

//配置缓存参数
cache: {
    maxAge: 600,
    expires: true,
    cacheControl: true,
    lastModified: true,
    etag: true
}
//定义缓存函数
const {cache} = require('../config/defaultConfig')

function refreshRes(stats,res) {
    if(cache.expires){
        res.setHeader('Expires',(new Date(Date.now() + cache.maxAge*1000)).toUTCString())
    }
    if(cache.cacheControl){
        res.setHeader('Cache-Control',`public,max-age=${cache.maxAge}`)

    }
    if(cache.lastModified){
        res.setHeader('Last-Modified',stats.mtime.toUTCString())
    }
    if(cache.etag){
        res.setHeader('ETag',`${stats.size}-${stats.mtime}`)
    }

}

module.exports = function (stats,req,res) {

    refreshRes(stats,res)

    const lastModified = req.headers['if-modified-since']
    const etag = req.headers['if-none-match']

    if(!lastModified && !etag){
        return false
    }
    const aaa = res.getHeaders()['last-modified']
    if(lastModified && lastModified !== res.getHeaders()['last-modified']){
        return false
    }

    if(etag && etag !== res.getHeaders()['etag']){
        return false
    }

    return true

}
//判断是否使用缓存
const isUseCache = require('../handle/cache')
if(isUseCache(stats,req,res)){
    res.statusCode = 304
    res.end()
    return
}

相关文章

  • web开发中缓存优化

    浏览器缓存 强缓存 Expires (Expires:Thu, 30 Dec 2027 11:02:20 GMT...

  • 彻底弄懂HTTP缓存机制及原理

    前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的...

  • http缓存

    前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的...

  • 面试总被问到HTTP缓存机制及原理?看完你就彻底明白了

    前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的...

  • HTTP缓存机制及原理

    Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基...

  • 强制缓存与协商缓存

    Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基...

  • 彻底弄懂HTTP缓存机制及原理

    转载地址 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识...

  • 浏览器缓存基本认识

    浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可...

  • 简单-浏览器缓存知识小结及应用

    浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可...

  • 浏览器缓存知识小结及应用

    浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可...

网友评论

    本文标题:web开发中缓存优化

    本文链接:https://www.haomeiwen.com/subject/bdqynxtx.html