2009-09-17 46 views
0

基本上,我有一個窗體,它有一些漂亮的日期敏感信息。表單被緩存的風險是:表單數據在瀏覽器中的緩存 - 客戶端解決方案

1)用戶可能沒有注意到日期是錯誤的,只是認爲服務器已經加載了他們保存的數據(如果日期正確的話,它應該是這樣)。然後他們提交數據並將其保存到錯誤的日期。他們直到下個星期纔會注意到,或者當他們在正確的一週沒有提交任何表格時大聲吼叫。

2)用戶注意到但認爲錯誤是服務器端。他們從瀏覽器重新加載表單,而不是提交日期更改表單,以獲得正確的日期,所有的不合適隨之而來...

所以,我在想,因爲所有嘗試處理緩存在服務器端似乎對情況影響最小,也許有更聰明的方式......

這兩個想法都是基於瀏覽器只在輸入表單爲空(無值)時才使用緩存數據的假設。所以第一個問題,這是真的嗎?

如果是,我不知道它的這些想法會更有效:

1)服務器腳本簡單地設置所有輸入爲0。然後,我有一個js腳本頁面上加載設置所有輸入用0來「」。 (0將永遠不會成爲可能的條目,以防止任何響鈴)。

2)將服務器腳本單獨留下,只需將上述javascript遍歷每個輸入並將輸入的value()更改爲輸入的attr("value")即可。所以如果它不存在,它會將其設置爲空白。

我對瀏覽器緩存或什麼都不理解?兩種方法都會更好嗎?

的第二個想法樣本:

$("input :text").val(function() { 
     realval = (!($this).attr("value")) ? 0 : $(this).attr("value"); 
     return realval; 
     }); 

回答

0

通過使用與會話ID擴展它不同的編號和名稱的輸入字段。

例如會話ID 12345

<input type="text" id="12345_firstname" name="12345_firstname" /> 

瀏覽器不會觸及這些字段。

另一種方法可能是將所有輸入字段設置爲禁用,並在文檔加載後將其設置爲啓用jQuery。

<INPUT NAME="firstname" DISABLED> 
$("input").removeAttr("disabled"); 
相關問題