经典 ASP 页面每次请求加载两次
Classic ASP page loading twice per request
我在经典 ASP 中使用 Jscript 作为脚本语言有这个非常直接和简单的脚本:
var counter_value = Session.Contents.Item("counter") || 0;
Response.Write("old:" + counter_value);
Session.Contents("counter") = counter_value + 1;
Response.Write("<br/>");
counter_value = Session.Contents.Item("counter");
Response.Write("new: " + counter_value);
当这个脚本第一次在浏览器中 运行 时,我得到这个输出:
old: 0
new: 1
但是当我在浏览器中刷新页面时,我得到了意想不到的结果:
old: 2
new: 3
为什么会这样?
发现问题是由于 url-rewrite.
中的规则导致页面在每个请求中执行两次
规则规定所有请求都应该重写为index.asp
,所以当浏览器发送请求时,index.asp
的内容会在响应中返回。
当浏览器自动请求 favicon.ico
图片时,同样的事情再次发生。
我在经典 ASP 中使用 Jscript 作为脚本语言有这个非常直接和简单的脚本:
var counter_value = Session.Contents.Item("counter") || 0;
Response.Write("old:" + counter_value);
Session.Contents("counter") = counter_value + 1;
Response.Write("<br/>");
counter_value = Session.Contents.Item("counter");
Response.Write("new: " + counter_value);
当这个脚本第一次在浏览器中 运行 时,我得到这个输出:
old: 0
new: 1
但是当我在浏览器中刷新页面时,我得到了意想不到的结果:
old: 2
new: 3
为什么会这样?
发现问题是由于 url-rewrite.
中的规则导致页面在每个请求中执行两次规则规定所有请求都应该重写为index.asp
,所以当浏览器发送请求时,index.asp
的内容会在响应中返回。
当浏览器自动请求 favicon.ico
图片时,同样的事情再次发生。