2012-02-29 15 views
0

私のjsonスクリプトがie8以降で更新されない問題があります。jquery json ie8以下スクリプトを更新しない

私はそのキャッシュの問題を推測します。これを修正するにはどうすればいいですか?

これは動作しているページです。 http://www.roofracks.co.uk/thule/Roof+Mounted+Bikes+and+Cycles+Racks+and+Carriers/533.php

<script type="text/javascript"> 

$(document).ready(function() { 
    $('#preloader').ajaxStart(function(){ 
    $(this).show();}).ajaxStop(function(){ 
    $(this).hide(); 
});  
    $.post('http://www.roofracks.co.uk/template_load/get_dynamic_prices.php', $("#productPrice").serialize(), 
     function(data){ 
      $('input[id=productID]').val(data.productID); 
      $('input[id=productDescription]').val(data.productDescription); 
      $('input[id=productPrice]').val(data.productPrice); 
      $('.productSinglePrice').html(data.productSinglePrice); 
      $('input[id=productThumb]').val(data.productThumb); 
      $('input[id=productThumbLarge]').val(data.productThumbLarge); 
     },'json'); 
    $("#productPrice").change(function(){ 
     $('.productSinglePrice').empty(); 
     $.post('http://www.roofracks.co.uk/template_load/get_dynamic_prices.php', $("#productPrice").serialize(), 
      function(data){ 
       $('input[id=productID]').val(data.productID); 
       $('input[id=productDescription]').val(data.productDescription); 
       $('input[id=productPrice]').val(data.productPrice); 
       $('.productSinglePrice').html(data.productSinglePrice); 
       $('input[id=productThumb]').val(data.productThumb); 
       $('input[id=productThumbLarge]').val(data.productThumbLarge); 
     },'json'); 
     return false; 

      });       
}); 
</script> 

答えて

1

あなたが持つことができ、キャッシングの問題の2種類があります。

IEはスクリプト自体をキャッシュしているため、変更は反映されません。この問題を解決するには、そのように、あなたの<script>タグに現在の日付/時刻とパラメータを追加します。

<script src="js/myscript.js?201202291038"></script> 

はIEはAJAXリクエストをキャッシュされます。この問題を解決するには、そのように、$.ajaxSetup()機能を使用してfalseからcacheオプションを設定します。

$.ajaxSetup({cache: false}); 
+0

私は両方を試しました。それが動作していないと思われる <?php \t $ date = time(); \t?> SmileyWar

1

は私がアンソニー・グリストが掲載何を示唆しています。また、あなたのコードは多くのDRYerになると思います。私はこれをテストしていませんが、あなたは考えを得る...

function(data) { 

    var ids = ['#productID', 
       '#productDescription', 
       '#productPrice', 
       '#productThumb', 
       '#productThumbLarge']; 

    for (var i = 0, len = ids.length; i < len; i++) { 
     $(ids[i]).val(data[ids[i].match(/[^#]+/)]); 
    } 

    $('.productSinglePrice').html(data.productSinglePrice); 

} 
+0

ポストに感謝します。私はjqueryにはとても新しいので、このコーディングはあまり理解できません。病気は最初にコーディングを研究しなければなりません:) – SmileyWar

関連する問題