0

我有个问题。

我正在使用 zend 创建一个 Web 应用程序,但我的 jquery 和 javascripts 遇到了问题。

我有一个页面显示订单,其中 jquery 代码写在脚本标签内的页面上。

我正在使用 jquery $.post 加载网站上的每个页面。

我的问题是,当您选择一个新的订单页面(第一次访问订单页面)时,然后单击一个打开 jquery 对话框的按钮以将信息添加到订单中,发送正确的帖子变量;但是,如果您随后继续执行另一个订单并再次单击该添加按钮,它会发送上一个订单的发布变量。

我假设以前的 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 代码,即使我在另一台计算机上使用它并清除了缓存。这把我吓坏了。

4

2 回答 2

4

您可以使用 jQuery 的.ajax()来指定cache: false,这将强制请求不缓存请求 - 请注意,您必须重写您的函数以不再使用$.post,而是使用$.ajax. 如果您不想这样做,您还可以添加到您的 url 以欺骗浏览器:

$.post("url...?c=" + Math.random())

这不是做事的最佳方式,但它们都有效。

于 2011-01-20T03:34:16.967 回答
0

我努力了cache : false

我尝试在最后添加随机获取变量。

我知道帖子没有被缓存,但每个页面上的 javascript 必须是因为正在使用的 javascript 是页面初始视图的第一个版本。

于 2011-01-20T05:02:30.800 回答