为了防止浏览器每次都加载文件,我使用了 HTTP_IF_MODIFIED_SINCE 标头。我检查标题是否未填写或过期日期之后。如果不是这样,我会返回 304 状态码:
<cfset modSince = "#cgi.HTTP_IF_MODIFIED_SINCE#">
<cfif modSince EQ "" || modSince NEQ "" AND ParseDateTime(modSince).after(datum)>
<cfheader name="Last-Modified" value="#SimpleDateFormat.format(datum)#">
<cfheader name="Expires" value="#SimpleDateFormat.format(expirevalue)#">
<cfcontent reset="true" type="#mimetype#" file="#bestand#">
<cfelse>
<cfheader statuscode="304" statustext="Not Modified" />
</cfif>
它在 Chrome 和 Firefox 中完美运行(文件由缓存加载,因为开发人员工具指出文件返回 304 状态代码)。IE(8、9、10 测试)不是这样,因为该状态码始终为 200。我是否需要一些特殊的标头来强制 IE 发送它的 if-modified-since 标头?