`

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多的文件,这些文件都是你浏览过的网站的文件,都保存在你的机子里,检查所存网页的较新版本 设置就是当你重新打开你以前打开的网站的时候,是直接从这个缓存打开网站,还是从新到服务器去打开网站,一般选择自动选项,当你第二次打开同一网站时,会先从缓存打开,如果缓存没有,会从新从服务器打开,这样在打开同一网站的速度会快很多~~~

 

分享到:
评论

相关推荐

    JS中表单的使用小结

    具体方法包括window.location.reload(),该方法用于刷新当前页面,如果在使用window.open()弹出的新窗口中,可以通过window.opener.location.reload()来刷新父窗口;而通过window.showModalDialog()打开的模态窗口,...

    javascript弹出窗口问题总结

    该函数会检查浏览器类型,对于IE5.5及以下版本,会创建一个不可见的按钮并触发点击事件来关闭窗口,其他版本的浏览器直接调用`window.close()`。 以上就是关于JavaScript弹出窗口常见问题的总结,包括如何处理刷新...

    showModalDialog模态对话框的使用详解以及浏览器兼容

    这与`window.open`方法不同,后者打开的新窗口并不会阻止用户在父窗口的操作。 **1. `showModalDialog`的基本使用** `showModalDialog`方法的基本语法如下: ```javascript var returnValue = window....

    web开发常用到的js事件.pdf

    当在同一个页面中多次使用`window.open()`时,确保为每个调用分配不同的窗口名称,以免新内容覆盖现有窗口。例如,使用时间戳作为窗口名称,可以确保每次打开的是独立的窗口。 5. **JavaScript事件处理**: - ...

    js关闭模态窗口刷新父页面或跳转页面

    1. `window.showModalDialog`方法:这是在早期IE浏览器中用于弹出模态对话框的一个方法。该方法会创建一个新的模态窗口,显示指定的HTML内容,并且这个对话框是阻塞式的,即在关闭前用户不能与父窗口进行交互。 2. ...

    js使用小技巧

    Javascript小技巧一箩筐 ...语言设置 onclick="window.external.ShowBrowserUI("LanguageDialog", null)"&gt; 加入收藏夹 onclick="window.external.AddFavorite("http://www.google.com/", "google...

    Ajax定时刷新局部页面

    ### Ajax定时刷新局部页面知识点详解 #### 一、Ajax简介 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味...

    网页设计试卷.doc

    * JavaScript的语法中,打开名为 "window2" 的新窗口的语法是window.open("http://www.w3school.com.cn","window2")。 * JavaScript的语法中,写 "Hello World" 的正确语法是document.write("Hello World")。 * ...

    JSP+Ajax div自动刷新 程序代码

    - 设置缓存控制为不缓存。 #### 2. 生成随机数据 ```java out.println("&lt;response&gt;"); for (int i = 0; i ; i++) { out.println("&lt;name&gt;" + (int)(Math.random() * 10) + "初始值&lt;/name&gt;"); out.println("&lt;count&gt;...

    Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法

    首先,问题在于Chrome不会像预期那样阻止用户与父窗口交互,它实际上将`showModalDialog`当作了`window.open`方法处理,打开了一个新的非模态窗口。这使得用户可以在子窗口活动的同时操作父窗口,且`returnValue`...

    Ajax面试题.docx

    - 缺点:速度较GET慢,URL不可见,不被浏览器自动缓存。 **跨域问题** 跨域是由于浏览器的同源策略造成的,只要协议、域名、端口三者之一不同,就被视为跨域。例如,`http://www.example.com`和`...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    市场上相应的检测平台诸如检测通、凡特网等皆为pc端检测网站,并且操作繁琐不够人性化,用户在实地使用中存在很多问题。昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业...

    ajax 数据库实例

    函数首先检查输入字符串`str`是否为空,如果为空,则清除显示区域的内容并返回。然后,根据浏览器类型创建XMLHttpRequest对象,设置请求状态改变的回调函数,打开一个GET请求到服务器端脚本`getcustomer.asp`,并将...

    AJAX无刷新 调用文件实例

    AJAX(Asynchronous JavaScript and XML)技术的出现,使得网页可以在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,极大地提高了用户交互性和页面的响应速度。本篇文章将深入探讨AJAX无刷新技术...

    Ajax基础教程学习

    Ajax(异步JavaScript和XML)是一种在Web应用程序中实现页面局部更新的技术,它极大地提升了用户体验,因为用户不再需要等待整个页面重新加载以获取新的数据。Ajax的核心在于使用JavaScript的XMLHttpRequest对象来与...

    Ajax自己写的js异步请求方法

    在Web开发中,异步请求是一项非常重要的技术,它允许网页在不重新加载整个页面的情况下与服务器进行交互,从而提升用户体验。其中,Ajax(Asynchronous JavaScript and XML)是一种常用的实现方式。本文将详细介绍一...

    Ajax-Ajax基础实例

    对于较旧的IE5和IE6浏览器,我们需要使用ActiveX对象: ```javascript var xhr = new ActiveXObject("Microsoft.XMLHTTP"); ``` 通常,我们会编写一个函数来检测浏览器支持哪种创建方式: ```javascript function ...

    ajax获取字符串

    构造请求URL,其中包含了用户ID以及时间戳(为了防止缓存),并设置请求方法为GET。 4. 设置请求的回调函数为 `callback`。 5. 发送请求。 ##### 3. 服务器端处理 ```jsp ;charset=GB18030" pageEncoding="GB...

    javascript 常用代码大全

    使用`screen.availWidth`和`screen.availHeight`获取屏幕的可用宽度和高度(减去20像素),然后通过`window.open()`方法打开一个新窗口,设置为全屏模式。 ### 2. XML文档处理 `initialize()`函数使用ActiveX对象`...

Global site tag (gtag.js) - Google Analytics