window.showModalDialog两次加载问题,清除缓存

今天遇到这样一件事情,           var frmHeight = 352;
            var frmWidth = 508;
            var frmTop = (window.screen.height - frmHeight) / 2;
            var frmLeft = (window.screen.width - frmWidth )/ 2;
            var url = "ChosePerson.aspx";
            var parameter = "dialogHeight:" + frmHeight + "px;dialogWidth:" + frmWidth + "px;dialogTop" + frmTop + "px;dialogLeft" + frmLeft + "px;scroll:0;status:0;reziable:1;";
            var rval = window.showModalDialog(url, "", parameter);

     window.showModalDialog()第一次加载是走page_load()方法的,第二次加载时就不走page_load();

 后通过以下第3或者第4都可解决此问题

    具体原因:

 

       是缓存的问题,你第一次打开窗口后,第二次浏览器没有从服务器端取数据,而直接找到了你已经下载的文件,

 

    最终解决办法:

  1.设置浏览器属性

 

         将IE的设置改一下再试试,Internet选项->常规->设置->每次访问此页时检查

         (优点全站重加载,可解决问题)

 

 2.添加缓存,把以前的缓存给清除

 

      //加入缓存,清除以前数据,防止不进行加载页面
     <%@ OutputCache Duration="1"  VaryByParam="none"%>

      (优点只针对需要的界面加,节省时间)

   

    //新增

3.(7/10测试时发现IE7不支持第2种缓存格式)没办法只有修改清除缓存代码

        在<head></head>中加入

        <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
        <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
        <META HTTP-EQUIV="Expires" CONTENT="0">

4. 或者在后台增加如下.NET代码

Response.Cache.SetNoStore();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章