asp.net MVC下 使用页面缓存情况下 在 Global.asax.cs 调用 Substitution 的问题.

lvxylls 2009-10-09 08:00:31
asp.net MVC下 在 Global.asax.cs 调用 Substitution 在vs里调试的时候是没问题的,就是vs自带的那个http服务器返回的结果是正常的,在IIS下就不正常了...


Global.asax.cs 中的代码

protected void Application_BeginRequest(Object sender, EventArgs e)
{
Context.Items["BeginRequestTickCount"] = GetTime.GetTickCount();
}
public static string WriteTime(HttpContext context)
{
StringBuilder htmlEnd = new StringBuilder();//用于存放html
htmlEnd.AppendLine("<script type=\"text/javascript\">LoadTime(" + context.Items["EndRequestTickCount"].ToString() + ",\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\");</script>");//加入载入时间的javascript事件
htmlEnd.AppendLine("</body>"); //加入从母板页中删除的html
htmlEnd.AppendLine("</html>");//加入从母板页中删除的html
//Response.Write(htmlEnd.ToString());//输出html

//htmlEnd.Remove(0, htmlEnd.Length - 1);//清空html
return htmlEnd.ToString();
}
protected void Application_EndRequest(Object sender, EventArgs e)
{

long EndRequestTickCount = (long)Context.Items["BeginRequestTickCount"];
TimeSpan ts = new TimeSpan(MvcApplication2.Models.GetTime.GetTickCount() - EndRequestTickCount);
double ot = ts.TotalMilliseconds / 1000;
Context.Items["EndRequestTickCount"] = ot.ToString();

Response.WriteSubstitution(new HttpResponseSubstitutionCallback(WriteTime));
Context.Items["EndRequestTickCount"] = null;
Context.Items["BeginRequestTickCount"] = null;
}



JavaScript代码
<script type="text/javascript">
function LoadTime(stime, snow) {
document.getElementById("loadTime").innerHTML = "Processed in " + stime + " second(s), 0 Queries. GMT+8, " + snow;
}
</script>


JavaScript调用掉的div的id

<div id="loadTime">
</div>


上面代码 我在Application_EndRequest下使用了 WriteSubstitution 和 HttpResponseSubstitutionCallback 来实现局部不缓存页面,用他们来实现页面加载时间的,可在IIS下不正常,还是完全被缓存了,在VS自带的那个http服务器下就是调试的时候那个,却是正常的,如果我想实现这个功能还有没有更好的方法?

或者谁能告诉我怎么解决现有的问题.

谢谢大家.


...全文
93 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧