2011-01-20 67 views
0

我遇到问题。从缓存中停止javascript

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

我有一个页面显示了在脚本标记页面上写的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是把正确的顺序编号的代码中,但JavaScript是恢复到一个较旧的一套。

我有一个类似的问题,该网站的另一部分和JavaScript恢复到3个星期前的JavaScript代码,即使我在不​​同的计算机上使用它并清除缓存。这吓坏了我。

+3

您的JS可能有问题,但我怀疑这是JS缓存问题。去你的客户机上找Fiddler2。当你浏览你的网站时,它可以解释像这样奇怪的问题。 – 2011-01-20 03:25:35

+0

问题在于别处。 `POST`没有被缓存。 – 2011-01-20 03:44:17

回答

4

您可以使用jQuery的.ajax()指定cache: false,这将迫使该请求不缓存请求 - 请注意,您必须重写你的函数不再使用$.post,而使用$.ajax。如果你不想做,你也可以添加到您的网址,以欺骗浏览器:

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

这不是做事情的最好方法,但他们都工作。

0

我已经试过cache : false

我试图在最后加上随机获取变量。

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