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