消毒除蟲專業團隊完整服務,專業害蟲防治
病媒防治、環境消毒定期維護,免費現場勘查
窗簾專業搬家公司服務,正派經營
損壞理賠契約,保障您權益

首頁  •  j2h 論壇 • 程式設計討論     • 

返回資料列表網頁還要 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 為秒數,但是要注意的是,秒數如果太小,還是有可能會看到之前的資料,這裡就可以視情況自行微調即可。




  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容:
    其他選項: