window.open()在IE设置 "检查所存页面较新版本" 为 "自动" 的缓存问题

在如下结构的frameset中:

<frameset cols="*,180"  frameborder="yes" border="0" framespacing="0">   
   <frame src="<%=baseURL%>/listInfoTemplate.do?filterCode=InfoTemplate&tableViewCode=InfoTemplate&tableCode=InfoTemplate" scrolling="auto"  name="map">
   <frame src="<%=baseURL%>/searchCategoryTree.do?forward=template_list" scrolling="auto" name="categoryTree">
</frameset>

我在categoryTree中的某个数节点点击的时候要改变map的内容。即执行下面的js方法:

function doTreeNodeClick(nodeId){
 var url = "<%=baseURL%>/listInfoTemplate.do?filterCode=InfoTemplate&tableViewCode=InfoTemplate&tableCode=InfoTemplate&SEARCH_FIELD_CategoryId="+nodeId; 
 window.open(url,"map");
 //parent.map.location = url;
}

当IE设置为   "检查所存页面较新版本"   为   "自动"   的情况下,每次点击树节点都没有进去.do方法里。

 

在网上找到这个描述:

当IE设置为   "检查所存页面较新版本"   为   "自动"   的情况下  
  frame_a下有一个GridView,用于填充数据  
   
  使用window.open("xxxx.aspx?value=1",   "frame_a")来打开一个网页,当网页打开后,页面会自动缓存,再次打开时就同最早一次打开是一样的(缓存原因),如果这时在页面,鼠标右键点刷新,那么这个页面的数据会重新加载,并显示所要显示的目标内容(没再使用已缓存的页面)  
   
  使用<a   href="xxxx.aspx?value=1"   target="frame_a">测试</a>时不论使用多少次都是正确的(没自动缓存页面,更没有使用缓存页面)  
   
  请问:  
  1,在使用window.open("",   "")的情况下如何处理  
      除以下几种方法外的方法:  
      (我在使用方法3时没有效果,例:window.open("xxxx.aspx?random()&value=1",   "frame_a"))  
          1、在Asp页面首部加入  
          Response.Buffer   =   True    
          Response.ExpiresAbsolute   =   Now()   -   1    
          Response.Expires   =   0    
          Response.CacheControl   =   "no-cache"    
          Response.AddHeader   "Pragma",   "No-Cache"  
   
          2、在HtML代码中加入  
          <HEAD>  
          <META   HTTP-EQUIV="Pragma"   CONTENT="no-cache">  
          <META   HTTP-EQUIV="Cache-Control"   CONTENT="no-cache">  
          <META   HTTP-EQUIV="Expires"   CONTENT="0">  
          </HEAD>  

 

 PHP网页  
  header("Expires:   Mon,   26   Jul   1997   05:00:00   GMT");  
  header("Cache-Control:   no-cache,   must-revalidate");  
  header("Pragma:   no-cache");  
  JSP  
          response.setHeader("Pragma","No-Cache");  
          response.setHeader("Cache-Control","No-Cache");  
          response.setDateHeader("Expires",   0);  
  C#中禁止cache的方法!  
  Response.Buffer=true;  
  Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);  
  Response.Expires=0;  
  Response.CacheControl="no-cache";
    
          3、在重新调用原页面的时候在给页面传一个参数  
          Href="****.asp?random()"  
   
          4、xxx.aspx.cs中:  
          Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);  
   
  2.有没有window.open(href,   target)替代方法?  
          要可以设置href及target,能在javascript中使用的

 

但我试着用这些方法都没成功,不知道哪里错了,最后只好直接用

parent.map.location = url;解决问题。

 

 

附:点击 在Internet 属性设置选项里的 查看文件 选项,你会发现里面有N多的文件,这些文件都是你浏览过的网站的文件,都保存在你的机子里,检查所存网页的较新版本 设置就是当你重新打开你以前打开的网站的时候,是直接从这个缓存打开网站,还是从新到服务器去打开网站,一般选择自动选项,当你第二次打开同一网站时,会先从缓存打开,如果缓存没有,会从新从服务器打开,这样在打开同一网站的速度会快很多~~~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值