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();

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