創意設計,讓居家空間再加分 提供各式精緻窗簾,專業窗藝設計師為您服務! | 室內裝潢油漆師傅領導,專精各種油漆工程 施工期間油漆工程價目表也絕不亂加價 |
返回資料列表網頁還要 Reload 才會更新資料怎麼辦? |
房東:幻童 發表時間:2006-12-24 | [檢舉] |
返回資料列表網頁還要 Reload 才會更新資料怎麼辦? 假設網頁 A 為資料列表、B 更新資料庫,通常想讓使用者即時看到修改的結果,流程不外乎就是 A->B->A 但是如果使用者在 A 送出資料到 B ,由 B 處理資料庫新增及更新,再回到 A 時,可能還是在使用者未更動的狀態。 最糟糕的是,連該做的 header cache expire 都設定好了,那該怎麼辦? 一般 header 的 cache 設定,依照使用的 script 不同,寫法也不同,以 PHP 為例就是: response.addHeader(\"Pragma\",\"no-cache\"); response.addHeader(\"Cache-Control\",\"no-cache, must-revalidate\"); response.addHeader(\"Cache-Control\",\"post-check=0, pre-check=0\"); response.addHeader(\"Cache-Control\",\"private\"); 或是 if (request.getProtocol().compareTo(\"HTTP/1.0\")==0){ response.setHeader(\"Pragma\",\"no-cache\"); } else if (request.getProtocol().compareTo(\"HTTP/1.1\")==0){ response.setHeader(\"Cache-Control\",\"no-cache\"); } response.setHeader(\"Expires\", \"0\"); 這二種都是常見的做法,我就不再多說,但是重點是當加了這些東西,還是會看到之前的資料就是瀏覽器的問題了。 解決的方法也很簡單,一般會出現 A->B->A 還是看到之前資料,通常有二個原因: 1.Cache 沒有設定逾時 2.B->A 轉頁速度太快,造成瀏覽器認為只要丟出之前的資料就好 目前我們要處理的就是 2 的狀況,您可以使用 Javacript 做時間 dealy、alert 出修改成功\的訊息,或是改為用比較簡單的 header refresh 來轉頁即可。 header refresh 範例如下: 其中 3 為秒數,但是要注意的是,秒數如果太小,還是有可能會看到之前的資料,這裡就可以視情況自行微調即可。 |
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |