我有一个Asp .Net Web应用程序,其中一些页面继承自基类"BasePage".这个BasePage类继承自System.Web.ui.Page并且我覆盖了Render方法,这样我就可以在将HTML流发送到客户端浏览器之前拦截它.
这是我的Render方法的代码:
protected override void Render(HtmlTextWriter writer){
MemoryStream memoryStream = new MemoryStream();
try
{
using (StreamWriter streamWriter = new StreamWriter(memoryStream))
{
var textWriter = new HtmlTextWriter(streamWriter);
base.Render(textWriter);
textWriter.Flush();
memoryStream.Position = 0;
using (StreamReader reader = new StreamReader(memoryStream))
{
string finalHtml = reader.ReadToEnd();
// Processing filters
finalHtml = FilterManager.ProcessFilters(finalHtml);
// Writing output to client
writer.Write(finalHtml);
reader.Close();
}
}
}
catch(ObjectDisposedException)
{
}
finally
{
memoryStream.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.有用.我没有使用响应过滤功能的原因是我知道它与Post-cache替换不兼容
是.我也想使用outputcache替换.出于测试目的,我在aspx页面中添加了一个小的asp .net控件:
<asp:Substitution runat="server" id="UnCachedArea" methodname="GetFreshDateTime" /> …Run Code Online (Sandbox Code Playgroud) 我在S3存储桶上有数百万个图像文件,我知道它们永远不会改变.为了优化请求,我决定在我的文件中添加一个过期标题(如下所述:google page speed rules)
将标题添加到我的所有文件的过程是漫长而昂贵的,所以我不想重复它.但是,Http Rfc建议将Expires标头设置为未来一年的最大到期日期:
...这意味着我必须在一年内更新我的标题.
我的问题是:
我可以将标头值设置为非常远的日期(例如:01-01-2020)并违反RFC建议吗?这样做的风险是什么?
是否有另一种解决方案告诉客户请求我的文件无限期地缓存它们,而不必更新我的亚马逊S3存储上的任何内容?
我不确定这是否如此重要,但我喜欢干净的代码,所以这是我的问题:
我使用带有express的node.js.我已经声明了呈现视图的路由:
app.get("/", function(req, res){
return res.render("index.jade");
});
Run Code Online (Sandbox Code Playgroud)
我可以删除"return"关键字,如下所示:
app.get("/", function(req, res){
res.render("index.jade");
});
Run Code Online (Sandbox Code Playgroud)
我发现了很多带有两种语法的例子.不知道使用哪一个.
谢谢.