请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

服务端逻辑

老师您好,我是一名前端,我想了解下后台逻辑大概是怎么设置的呢?
设置cache-control后前台如果script 的src后面一串hash值没有变化并且没到期就会去浏览器的缓存中读取,变化以后应该就是一个新的地址所以会向服务器发起请求,在这里服务端是不是只需要把hash值截掉,只留下前面部分地址作为响应的判断,满足条件直接返回就好了?还是会有些其他设置呢?

if((request.url.split('.')[0] + ".js") === '/script.js'){
  Response.writeHead(200, {
    'Content-Type' :  'text/javascript'
  })
  Response.end('console.log(script loaded)')
}

前面可能说的不清楚,总结下问题就是后台是不是大概就是这么个逻辑,服务端不用管后面的hash值,浏览器会自己根据后面hash值变化而发起一个新的请求,这样就可以实现前台更新了
因为自学的前端,所以对后端这块完全不了解,望老师解答一下,谢谢!

正在回答 回答被采纳积分+3

1回答

Jokcy 2020-10-03 14:09:55

这个逻辑是没有固定的,你可以对不同的场景使用不同的处理逻辑。比如对于你说的js静态文件,一般我们的处理是会在产出js文件的时候,根据其内容在文件名上生成hash,只要内容没变,hash就不会变,文件名就不会变,自然url就不会变,cache-control就会生效。而如果内容变化了,hash就变了,文件名也变了,url也变了,那么就会请求新的地址,不会复用之前的cache-control。

0 回复 有任何疑惑可以回复我~
  • 请教下,css,js的请求,服务端是如何知道hash变了呢?
    回复 有任何疑惑可以回复我~ 2020-11-07 22:47:56
  • Jokcy 回复 moonshine100 #2
    服务端只是响应你的文件路径而已,如果你的请求路径不一样,对服务端来说访问的就是两个完全不同的文件
    回复 有任何疑惑可以回复我~ 2020-11-08 21:18:04
  • 伯乐55 回复 Jokcy #3
    那么当内容改变时 请求的路径也改变 后端是不是应该加一个新的带有新的hash值的路径判断 然后返回新的js文件
    回复 有任何疑惑可以回复我~ 2022-04-28 12:00:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信