ajax之cache血與淚~~


場景:項目以ie5渲染頁面,點擊導出列表數據(Excel形式),點擊導出發送get請求,后台生成Excel文件,返回文件地址信息

異常:ie第一次返回的信息正常,之后返回的都是第一次的結果,google正常

         后台方法斷點,ie只有第一次會進斷點,之后沒有進斷點

異常代碼:

            alert(1);
            $.ajax({
                url: actionURL + "?"
                + $.param({
                    Action:"export",
                    strWhere: strwhere
                }),
                data: { page: page, rows: rows },
                type: "get",
                success: function (data) {
                    alert(data);
                    window.location.href = "../../Views/MEAS/Download.aspx?filePath=" + escape(data);
                },
                error: function (e) {
                    alert(e);
                }
            });

 解決方案:1.加cache:false

                 2.url加隨機數

 正常代碼:

 

            alert(1);
            $.ajax({
                url: actionURL + "?"
                + $.param({
                    Action:"export",
                    strWhere: strwhere
                }),
                data: { page: page, rows: rows },
                type: "get",
                cache:false,
                success: function (data) {
                    alert(data);
                    window.location.href = "../../Views/MEAS/Download.aspx?filePath=" + escape(data);
                },
                error: function (e) {
                    alert(e);
                }
            });

 

網上高人解讀:

cache的作用就是第一次請求完畢之后,如果再次去請求,可以直接從緩存里面讀取而不是再到服務器端讀取。

如果使用jquery,可以使用 cache參數來控制

$.ajax({
  url: "test.html",
  cache: false, //或者設置true
  success: function(html){
    $("#results").append(html);
  }
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM