最近刚刚遇到一个问题是这样的,我的treeview点击结点显示地图要素是通过prototype的ajax实现的
代码
var paras="ajaxFlag=getMarkerIDs";
var myAjax=new Ajax.Request(
"AddInfoHandler.ashx",
{method:'get',parameters:paras,onComplete:showGetMarkerIDsResponse}
);

var myAjax=new Ajax.Request(
"AddInfoHandler.ashx",
{method:'get',parameters:paras,onComplete:showGetMarkerIDsResponse}
);
因为我有一个切换数据库的操作,第一次进数据库A的时候,列表加载正确,点击结点(ajax)地图显示A数据,但点击ie后退再进入数据库B的treeview,列表加载正确(加载列表不是ajax), 点击结点地图显示的数据却还是A的数据(ajax),我在AddInfoHandler.ashx(ajax请求页面)设置断点,发现再次进行上面操作时候进A数据库断点命中,而进B数据库竟然没进断点,但是我确实很奇怪,没进页面竟然ajax也有返回数据,并且跟上一次一样,应该是用的缓存机制。 最后网上查到资料更改如下:
代码
var myAjax=new Ajax.Request(
"AddInfoHandler.ashx",
{method:'get',requestHeaders: ['Cache-Control','no-cache','If-Modified-Since','0'],parameters:paras,onComplete:showGetMarkerIDsResponse}
);
[转载]http://www.cnblogs.com/Denveryang/archive/2010/02/10/1666316.html

"AddInfoHandler.ashx",
{method:'get',requestHeaders: ['Cache-Control','no-cache','If-Modified-Since','0'],parameters:paras,onComplete:showGetMarkerIDsResponse}
);
在web开发的时候经常需要用到ajax,但是有些问题往往会被忽略,如果提交后需要在服务端做一些后台操作的话因为浏览器默认状态下有缓存的原因,可能页面上的信息还是正确的,但是后台的逻辑代码却没有真正的更新。这样是为了减少频繁访问服务器对其造成不必要的负担,但是同时也带来了一定特殊业务逻辑满足不了的问题。
例如:
需要通过前台一个select下拉列表来作为ajax的触发入口,同时将server返回的信息呈现在页面,并且往session或者数据库里面更新一些实际的东西的逻辑操作。
当第一次切换选项,也就是提交请求的时候一切都是正常的,但是如果切换相同选项因为浏览器的缓存原因,将不会走到server,实际得到的动态信息是从缓存中去取的。造成后台的逻辑没有被走到。代码如下:
简单的说,Last-Modified 与If-Modified-Since 都是用于记录页面最后修改时间的 HTTP 头信息,只是 Last-Modified 是由服务器往客户端发送的 HTTP 头,而 If-Modified-Since 则是由客户端往服务器发送的头,可 以看到,再次请求本地存在的 cache 页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的 Last-Modified 最后修改时间戳发送回去,这是为了让服务器端进行验证,通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。
另外还有另一个解决放案,经测试,理论也是可行的,就是在请求页面设置一下response的header:
Response.AddHeader("Cache-control", "no-cache");
从服务端设置Header,其默认值为"private"修改为"no-cache"将实现,每次发送请求都会去服务端走一次。
response.setHeader参数、用法的介绍
详细出处参考:http://www.jb51.net/article/16437.htm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理