在ASP编程中,经常会遇到提交后仍然在本页的情况。如果程序中把提交及处理语句都放在一个文件中。可能会遇到下面的问题:
使用者提交后程序已对数据库有了操作结果,如果此时点击浏览器刷新按钮的时候,会发现会重复提交了数据。
在三原色实际编程中和参考网络文献,发现有如下几种思路:
1.设置控件变量记录是已提交还是新提交页面。
优点:本页内即可处理完毕。缺点是:需要编程计算页面的提交状态。
2.Response.Redirect
提交后处理完后,再利用以上语句跳转回此页。处理过程都集中在服务器,对于客户来说,不存在任何感觉。
3.JS处理
处理完毕后,再利用JS去跳转。
Response.Write("<script language='JavaScript'>alert('<font color="#0000ff">弹出窗口!</font>');window.location='<font color="#0000ff">a.aspx</font>';</script>");
以上语句会有一个弹出窗口。
三原色在实际编程中以为能用缓存置为0来解决,如下的语句:
Response.Buffer = True
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
在FF下发现根本不能解决问题。以上关于ASP缓存的文章,请点击缓存查看。
三原色原创,转载请加注版权链接。
下一页转载蓝色理想的文章,更全面地介绍防止缓存的方法。
5.使用session 见下一页了。

