我有一个问题。
我正在使用 zend 创建 Web 应用程序,但我的 jquery 和 javascript 遇到了问题。
我有一个页面,显示订单,并在页面上的脚本标记内编写了 jquery 代码。
我使用 jquery $.post 加载网站上的每个页面。
我的问题是,当您选择一个新的订单页面(第一次访问订单页面),然后单击打开 jquery 对话框的按钮以向订单添加信息时,会发送正确的 post 变量;但如果您随后继续处理另一个订单并再次单击该添加按钮,它将发送前一个订单的发布变量。
我假设之前的 javascript 信息已被缓存。如果我清空缓存,它再次可以正常处理该订单,但无法处理之后的订单。
我正在使用 php 将相关变量(订单 ID)粘贴到内联 JavaScript 代码中。
我猜这就是我的失败。
我不明白的是,javascript 对于页面的初始加载工作得很好,因为它然后使用 ajax 来获取页面的更多部分。这工作正常,但是当我使用按钮时,它会恢复到开始时使用的原始订单 ID。
附件是我的代码:
function getFreightTable()
{
$.post("order/freighttable", "OrderID=<?= $this->orderID; ?>" , function(data){
$("#tabs-3").html(data);
});
}
$("#OrderAddFreightButton").live('click',function() {
$.post("freight/new", "OrderID=<?= $this->orderID; ?>", function(data) {
$("#orderAddFreightDialog").html(data);
$("#orderAddFreightDialog").dialog({
autoOpen: true,
hide: 'slide',
show: 'slide',
title: 'Add New Freight Information',
closeOnEscape: true,
close: function(event, ui)
{
$("#orderAddFreightDialog").empty();
getFreightTable();
}
});
});
return false;
});
我的 php 正在代码中放置正确的订单 ID,但 javascript 正在恢复到较旧的设置。
即使我在另一台计算机上使用它并清除了缓存,网站的另一个部分和 javascript 也恢复为 3 周前的 javascript 代码,我也遇到了类似的问题。这让我很害怕。
最佳答案
您可以使用 jQuery 的 .ajax()指定 cache: false
,这将强制请求不缓存请求 - 请注意,您必须重写函数以不再使用 $.post
而是使用$.ajax
。如果您不想这样做,您还可以添加到您的网址以欺骗浏览器:
$.post("url...?c=" + Math.random())
这不是最好的做事方式,但它们都有效。
关于php - 停止 javascript 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743140/