jquery json ie8 и ниже не обновляющий скрипт - PullRequest
0 голосов
/ 29 февраля 2012

У меня проблема с тем, что мой скрипт 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>

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Я бы предложил сделать то, что Энтони Грист опубликовал. Кроме того, я думаю, что ваш код может быть намного сухим. Я не проверял это, но вы поняли ...

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);

}
1 голос
/ 29 февраля 2012

Существует два вида проблем с кэшированием.

IE кэширует сам скрипт, поэтому изменения не отражаются. Чтобы исправить это, добавьте параметр с текущей датой / временем к вашему тегу <script>, например:

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

IE кэширует AJAX-запросы. Чтобы исправить это, установите параметр cache на false, используя функцию $.ajaxSetup(), например:

$.ajaxSetup({cache: false});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...