測試提了一個bug,在360瀏覽器相容模式下,刪除頁面數據需要手動刷新瀏覽器才能看到最新的數據。首先要復現當時的問題,很容易就復現了,但是發現在360瀏覽器相容模式下無法打開開發者工具。好在經過反覆重裝之後,終於打開了開發者工具,經過跟蹤發現,第一次刪除數據時可以正常刷新,第二次或以後的刪除將無法刷 ...
測試提了一個bug,在360瀏覽器相容模式下,刪除頁面數據需要手動刷新瀏覽器才能看到最新的數據。首先要復現當時的問題,很容易就復現了,但是發現在360瀏覽器相容模式下無法打開開發者工具。好在經過反覆重裝之後,終於打開了開發者工具,經過跟蹤發現,第一次刪除數據時可以正常刷新,第二次或以後的刪除將無法刷新,跟蹤代碼,發現通過非同步請求的數據正常的返回並且綁定了。點擊搜索按鈕,也無法實現刷新,但是點擊分頁,發現可以翻頁。初步推斷是瀏覽器緩存了非同步請求數據,跟蹤比較返回的數據發現,推斷是正確的。於是從網上搜到一段代碼,設置為無緩存請求,代碼如下:
1 app.config(function ($httpProvider) { 2 // Initialize get if not there 3 if (!$httpProvider.defaults.headers.get) { 4 $httpProvider.defaults.headers.get = {}; 5 } 6 // Enables Request.IsAjaxRequest() in ASP.NET MVC 7 $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; 8 //禁用IE對ajax的緩存 9 $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; 10 $httpProvider.defaults.headers.get['Pragma'] = 'no-cache'; 11 });
以上主要是我解決問題的思路和方法,期望能夠幫助其他遇到這個問題的小伙伴們快速解決這個問題。