Internet explorer IE9未清除POST之间的缓存
我有一个页面可以执行以下操作:Internet explorer IE9未清除POST之间的缓存,internet-explorer,session,post,http-headers,browser-cache,Internet Explorer,Session,Post,Http Headers,Browser Cache,我有一个页面可以执行以下操作: 点击按钮提交表格 页面发布到自身,并执行SQL查询以更新数据库中的字段 然后,代码检查查询执行过程中是否有任何受影响的行,并对其进行回显。我希望它会回显受影响的行“1” 在Firefox、Safari和Chrome中,此操作每次都能正常工作。 但在IE9中,它第一次工作,可能是2次,甚至3次,然后它做了一些奇怪的事情-它回显受影响的行“0”-,即使查询执行得很好(数据库已更新)。 我认为这是某种缓存问题,因为当我在步骤1(提交表单)之前清除IE中的浏览器缓存时,它
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
在
标签中:
<meta http-equiv="Cache-Control" content="no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT" />
发生了什么事?我怎样才能阻止IE这样大肆渲染
更新:
似乎与PHP PDO的rowCount()存在某种不一致性(用于获取受影响的行)。。。在我的例子中,我无法想象如何,但这种不一致性与浏览器缓存有关。执行查询后,我没有使用rowCount(),而是执行SELECT以确定字段是否使用新val更新。这似乎一直有效。执行查询后,不是使用PDO的rowCount(),而是执行SELECT查询以确定字段是否使用新val更新 伪代码/SQL: