2010-10-07 64 views
1

你能檢查這是否是瀏覽器緩存問題嗎?這是一個瀏覽器緩存問題?

我有這種情況下,我有一個表格顯示這樣和下面的數據,這是一個鏈接, 發送給您另一個網址。一次只能單擊一行。

<table> 
    <thead> 
     . 
     . 
    </thead> 
    <tbody> 
     <tr> 
      <td><input type=""checkbox" value="1" name="_chk"/></td> 
      <td>Field1</td> 
      <td>Field2</td> 
     </tr> 
    </tbody> 
</table> 
<a href="/myApp/url.htm" id="myLink">Change</a> 

鏈接的點擊,我使用jQuery的

$(document).ready(function(){ 
    $("#myLink").click(function(){ 
     var transID = $("input[name='_chk']:checked").val(); 
     var currHref = $(this).attr("href"); 

     $(this).attr("href", currHref + "?transID=" +transID); 
    }); 
}); 

首先點擊添加當前點擊ID來href屬性,它的確定和事務ID被追加爲參數的新網址像這樣的字符串/myApp/url.htm?transID=1?

問題是這樣的,當我點擊後退按鈕,然後單擊另一行,URL參數字符串被加倍 這樣/myApp/url.htm?transID=1?transID=2

這是一個瀏覽器緩存問題,有沒有解決這個問題的方法?

+0

它在你的程序邏輯問題 – 2010-10-07 02:55:10

回答

1

嘗試......

$(document).ready(function() { 
    var baseUrl = "/myApp/url.htm"; 

    $("#myLink").click(function(){ 
     var transID = $("input[name='_chk']:checked").val(); 
     $(this).attr("href", baseUrl + "?transID=" +transID); 
    }); 
}); 
+0

只是一個題。我在我的所有HTML頭標記中添加了以下內容 \t \t \t \t 。這是否不足以防止瀏覽器緩存? – 2010-10-07 06:08:52

+0

@Mark Estrada:我不認爲你的問題是緩存頭或元標籤。當你使用後退按鈕時,我懷疑*瀏覽器會給你以前版本的頁面,不管是什麼(除了在POST上)。瀏覽器之間的這種行爲可能會有所不同,它可能會比我理解的更細緻。但是我的解決方案和Manny的解決方案無論如何都會解決它。 – 2010-10-07 13:35:24

2

是的,這是一個由瀏覽器緩存的javascript/html狀態。如果你從頁面之間的表單控件傳遞值,我建議你使用默認的方式,即使用表單和提交按鈕。

如果你堅持使用Javascript,那麼不要獲得屬性「href」,硬編碼的url(不要從href屬性獲取它)並附加參數並使用Javascript重定向到該頁面。

試試這個,如果它工作(但是這僅僅是一個快速解決您的代碼):

$(document).ready(function(){ 
    $("#myLink").click(function(){ 
     var transID = $("input[name='_chk']:checked").val(); 
     var currHref = "/myApp/url.htm"; 

     $(this).attr("href", currHref + "?transID=" +transID); 
    }); 
});