加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 输出缓存动态生成的CSS

发布时间:2020-12-16 06:24:59 所属栏目:asp.Net 来源:网络整理
导读:在我的应用程序中,用户可以选择修改其站点的CSS. 这不太可能经常改变,但是当它发生时,我们需要确保他们及其网站访问者立即看到结果. 我们确实记录了用户更新CSS的日期和时间,因此一个简单的解决方案就是在网址上附加一个时间戳. 但是,我想知道是否可以以编程
在我的应用程序中,用户可以选择修改其站点的CSS.

这不太可能经常改变,但是当它发生时,我们需要确保他们及其网站访问者立即看到结果.

我们确实记录了用户更新CSS的日期和时间,因此一个简单的解决方案就是在网址上附加一个时间戳.

但是,我想知道是否可以以编程方式设置缓存标头以强制浏览器重新请求CSS文件(如果它发生更改).

解决方法

如果您在网址中包含哈希值,即

http://server.example.com/styles/css.css?hash

当哈希值发生变化时会重新加载,因为浏览器会从新的url中获取它:

版本1:

<style type="text/css" link="styles/css.css?hash=v1" />

版本2:

<style type="text/css" link="styles/css.css?hash=v2" />

客户端缓存是客户端问题,让他们按照自己的意愿行事:新的URL意味着资源已经更改,因此需要重新加载.由于客户端实现的不同,保持与缓存控制头相同的URL可能会让您陷入痛苦的世界.

如果您放置缓存控件标题(last-modified,expires,ETAG),则无法确定CSS在更改时是否会刷新:

>因为激进的浏览器(或代理)缓存可能会忽略这些.
>因为您可能在5月1日服务V1,截止日期为6月1日,在5月15日将其更新为V2,您的客户将需要等待15天才能获得新版本.

使用url哈希,最糟糕的情况是客户端不会将您的css放入缓存中,但用户体验不会改变,因为它们总是获得最新版本.

对于到期日期或上次修改日期,最糟糕的情况是客户端获得旧版本,这将改变用户体验:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读