Javascript 这是浏览器缓存问题吗?

Javascript 这是浏览器缓存问题吗?,javascript,jquery,xhtml,Javascript,Jquery,Xhtml,能否检查这是否是浏览器缓存问题 我有这样一个场景,我有一个表,显示像这样的数据,下面是一个链接 将您发送到另一个url。一次只能单击一行 <table> <thead> . . </thead> <tbody> <tr> <td><input type=""checkbox" value="1" name="_chk"/&g

能否检查这是否是浏览器缓存问题

我有这样一个场景,我有一个表,显示像这样的数据,下面是一个链接 将您发送到另一个url。一次只能单击一行

<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>
第一次单击时,其ok和事务id将作为参数附加到新的url字符串中,如/myApp/url.htm?transID=1

问题是,当我单击后退按钮,然后单击另一行时,url参数字符串会加倍 像这样/myApp/url.htm?transID=1?transID=2


这是浏览器缓存问题吗?是否有解决方法?

是的,这是浏览器缓存的javascript/html状态。如果您在页面之间传递来自表单控件的值,我建议您使用默认方式,即使用表单和提交按钮

如果坚持使用Javascript,则不要获取属性“href”,硬编码url(不要从href属性获取),并附加参数并使用Javascript重定向到该页面

如果可行,请尝试此方法(但这只是对代码的快速修复):

试试这个

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

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

这在你的程序中是一个逻辑问题,只有一个问题。我在所有HTML头标记中添加了以下行。这还不足以阻止浏览器缓存吗?@Mark Estrada:我认为你的问题不在于缓存头或元标记。当您使用“后退”按钮时,我怀疑无论发生什么情况,浏览器都会为您提供页面的上一版本(可能在帖子上除外)。浏览器之间的这种行为可能有所不同,而且可能比我所理解的更加微妙。但我的解决方案和曼尼的解决方案无论如何都会解决它。
$(document).ready(function(){
    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        var currHref = "/myApp/url.htm";

        $(this).attr("href", currHref + "?transID=" +transID);
    });
});
$(document).ready(function() {
    var baseUrl = "/myApp/url.htm";

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