消毒除蟲專業團隊完整服務,專業害蟲防治 病媒防治、環境消毒定期維護,免費現場勘查 | 專業搬家公司服務,正派經營 損壞理賠契約,保障您權益 |
返回資料列表網頁還要 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 為秒數,但是要注意的是,秒數如果太小,還是有可能會看到之前的資料,這裡就可以視情況自行微調即可。 |
|
廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! 廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 |
姓名: | |||
佈告內容: | |||
其他選項: | |||
|