Caching 经典的ASP缓存破坏(但仍然令人满意的PageSpeed分数)

Caching 经典的ASP缓存破坏(但仍然令人满意的PageSpeed分数),caching,iis,asp-classic,pagespeed,Caching,Iis,Asp Classic,Pagespeed,场景: Dim dtmExp Response.Buffer = True Response.CharSet = "UTF-8" dtmExp = DateAdd("n", 30, Now()) Response.ExpiresAbsolute = dtmExp Response.Expires = dtmExp 我正在使用IIS和ASP,我们需要缓存站点(让我和我的老板都开心)。我们目前有IIS缓存一切(asp/JS/CSS),为期一周 问题: Dim dtmExp Response.Buf

场景:

Dim dtmExp
Response.Buffer = True
Response.CharSet = "UTF-8"
dtmExp = DateAdd("n", 30, Now())
Response.ExpiresAbsolute = dtmExp
Response.Expires = dtmExp
我正在使用IIS和ASP,我们需要缓存站点(让我和我的老板都开心)。我们目前有IIS缓存一切(asp/JS/CSS),为期一周

问题:

Dim dtmExp
Response.Buffer = True
Response.CharSet = "UTF-8"
dtmExp = DateAdd("n", 30, Now())
Response.ExpiresAbsolute = dtmExp
Response.Expires = dtmExp
更新ASP页面上的HTML内容后,我的老板会看到页面的旧版本,直到他(强制)刷新

问题:

Dim dtmExp
Response.Buffer = True
Response.CharSet = "UTF-8"
dtmExp = DateAdd("n", 30, Now())
Response.ExpiresAbsolute = dtmExp
Response.Expires = dtmExp
更改ASP HTML内容后,如何(强制)更新服务器缓存


我希望我的同事和经理在不强制刷新浏览器的情况下查看最新的更改。

您是否配置为使用“If Modified Since”HTTP标头

Scott Hanselman博客上的这一解释为您提供了您想要的信息和想法-


本页还提供了一个有用的入门读物,让我们看看是否能让老板高兴。和你一样,我也有一些人认为F5或Ctrl+F5很烦人

快速查看,确保IIS服务器上的输出缓存在发生更改时正在更新,让我们将其设置为“缓存直到发生更改”。 我知道你每周都会清理,但如果情况没有改变。。。为什么?

让我们设置客户端浏览器缓存默认值。 您的所有页面标题都有以下内容,让页面在使用GMT时间30分钟后过期。 主标题:

Dim dtmExp
Response.Buffer = True
Response.CharSet = "UTF-8"
dtmExp = DateAdd("n", 30, Now())
Response.ExpiresAbsolute = dtmExp
Response.Expires = dtmExp
我们有几个选项和方法来触发标题更改。 您可以使用会话、cookie、数据库更新等。在本例中,我使用会话,可以随意更改周围的内容,以更好地适应您的应用程序

页面编辑.asp

    Session("EditedPageFullURL") = "/yourpage.asp"
在“常用功能”页面中添加以下内容

Function EditorsReload(eChk,erURL)
If IsNumeric(eChk) Then
    Session("Editing") = eChk
End If
If Len(erURL) = 0 Then
    Exit Function
End If
If Session("Editing") <> "" Then
    If Session("Editing") = 1 Then
        If (LCase(erURL) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
            Session("Editing") = ""
            Session("EditedPageFullURL") = ""
            Response.Expires = -1
            Response.ExpiresAbsolute = Now() -1 
            Response.AddHeader "pragma", "no-store"
            Response.AddHeader "cache-control","no-store, no-cache, must-revalidate" 
      End If 
    End If
End If
End Function
如果您的站点设置了登录和成员会话,则可以将其包装为“会话(“身份验证”)。 除此之外,只有当会话(“EditedPageFullRUL”的长度大于1时,才会触发此命令

这将更新BOSS浏览器标题,强制浏览器刷新本地缓存。 这是一次性交易,因此任何额外的页面刷新都使用标准标题

有很多方法可以做到这一点,所以要有创意