0
之間
我有一個頁面,執行以下操作清除緩存:IE9不在崗位
- 點擊按鈕提交表單
- 頁發送到自身,並執行一個SQL查詢的更新場D B。
- 然後代碼檢查查詢執行中是否有任何受影響的行,並且它是回顯。我期望它回聲受影響的行「1」
在Firefox,Safari和Chrome中,此操作每次都不失敗。儘管查詢執行得很好(數據庫已更新),但在IE9中,它第一次工作,也許是2次甚至3次,然後它確實有點奇怪 - 回聲受影響的行「0」 - 。
我相信這是某種形式的緩存問題,因爲當我第1步(提交表單)之前在IE清除瀏覽器緩存它每天都要工作作爲需要的時間。在<head>
標籤
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
這:
<meta http-equiv="Cache-Control" content="no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT" />
這是怎麼回事使用此代碼
我用盡?我怎樣才能阻止IE打這樣?
更新:
似乎有某種與PHP PDO的rowCount時()不一致的(用於獲取受影響的行)......在我的情況,我怎麼也想不到,但不一致鏈接到瀏覽器緩存。在執行我的查詢之後,我沒有使用rowCount(),而是執行SELECT以確定字段是否已用新的val更新。這似乎一直工作。