2011-01-20 7 views
0

私は問題があります。キャッシングからjavascriptを停止

私は、Webアプリケーションを作成するためにzendを使用しています。私はjqueryとjavascriptに問題が発生しています。

スクリプトタグ内のページにjqueryコードが書き込まれたオーダーを示すページがあります。

jquery $ .postを使用して、Webサイトの各ページを読み込みます。

私の問題は、新しい注文ページ(注文ページに初めてアクセスする)を選択し、jqueryダイアログボックスを開いて正しいポスト変数が送信される順序に情報を追加するボタンをクリックするときです。しかし別の注文に行き、その追加ボタンをもう一度クリックすると、前の注文からの投稿変数が送信されます。

前のjavascript情報がキャッシュされていると仮定します。キャッシュを空にすると、オーダーには問題なく動作しますが、それ以降はオーダーが失敗します。

私は問題の変数(注文ID)をインラインJavaScriptコードに貼り付けるためにPHPを使用しています。

私はこれが私の没落であると推測しています。

私が理解していないことは、ページの最初の読み込み時に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の古いセットに戻すさ:添付

は私のコードです。

私は別のコンピュータでそれを使用してキャッシュをクリアしても、3週間前からjavascriptコードに戻ってサイトとJavaScriptの別のセクションで同様の問題が発生しています。これは私を驚かせている。あなたは、もはや$.postを使用しないで、代わりに$.ajaxを使用するように機能を書き換える必要があることに注意してください -

+3

あなたのJSに問題があるかもしれませんが、私はそれがJSキャッシングの問題だとは思っていません。あなたのクライアントマシンでFiddler2を入手してください。それはあなたのサイトを閲覧する際に、このような奇妙な問題に多くの光を当てることができます –

+0

問題は他にあります。 'POST'はキャッシュされません。 –

答えて

4

あなたは、要求をキャッシュしない要求を強制しますcache: falseを、指定するjQueryの.ajax()を使用することができます。彼らは両方の仕事をそれは物事を行うための最善の方法ではありません

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

、しかし:あなたがそれを行うにはしたくない場合は、ブラウザをだますためにあなたのURLに追加することができます。私が最後にランダムGET変数を追加しようとしているcache : false

0

私が試してみました。

投稿はキャッシュされていませんが、使用されているjavascriptがページの最初のビューから最初のバージョンであるため、各ページにあるjavascriptが必要であることを認識しています。

+0

これらの作業はありません。私はjqueriesの.live()関数を使って何かをするかもしれないと思っていました。 – roguecoder

関連する問題