最近做了一个在用户点击按钮时记录用户按钮点击数并判断点击数是否超过某个数值的功能。因为需要点击按钮的时候页面不能回发,所以最后采用了js与ashx结合的方法。(.ashx文件是asp.net中实现自定义http处理程序的文件,另一种实现自定义http处理程序的方法是自定义处理程序,如trace.axd。注:aspx页面也是依靠http处理程序的,只不过是一个复杂的http处理程序)
但在使用的过程中因为浏览器的缓存问题,除第一次请求.ashx文件会与后台进行交互外,以后的请求就只返回第一次请求结果的缓存值。解决的方法是添加如下代码:
context.Response.Cache.SetNoStore();
或者也可在请求.ashx文件的url添加随机参数,这样每次请求时会被认为是不同的请求。