$ .get Internet Explorer против Firefox - PullRequest
1 голос
/ 05 марта 2012

Я использую ASP.NET MVC 3 для создания веб-приложения для деловых игр.В части настройки мне нужно создать несколько команд для игр.Для динамического добавления команд я использую этот скрипт.

   $("#addTeam").click(function () {
        $.get("@Url.Action("NewTeam","Admin")", function (template) {
            $("#teams").append(template);
        });
    });

В фоновом режиме это вызывает метод в моем контроллере.В этом методе я генерирую новый экземпляр моей модели представления, который (в свою очередь) создает новый (случайный) цвет для каждой команды.Если я проверю это в Firefox, я получу разные цвета для каждой команды.Но когда я тестирую его в Internet Explorer, я получаю только один цвет для всех команд.Мое действие контроллера также вызывается только один раз.

Кто-нибудь видел такое поведение раньше?Похоже, что Internet Explorer не выполняет получение HTTP каждый раз, когда я нажимаю на ссылку.

Спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

Похоже на проблему с кешированием.Попробуйте очистить кеш:

$.get("@Url.Action("NewTeam","Admin")" + new Date().getTime(), function (template) {
    $("#teams").append(template);
});

или:

$.ajax({
    url: "@Url.Action("NewTeam","Admin")",
    cache: false,
    success: function(template) {
        $("#teams").append(template);
    }
});
0 голосов
/ 05 марта 2012

IE очень агрессивно относится к кешированию ajax-запросов.Вы просто сообщаете jQuery, что хотите отключить кэширование:

$.ajax({
    url: "@Url.Action("NewTeam","Admin")",
    success: function(template) {
        $("#teams").append(template);
    },
    type: "GET",
    cache: false
});

Все параметры описаны здесь: http://api.jquery.com/jQuery.ajax/. $.get() - это просто сокращенная форма $.ajax() с некоторыми параметрамиуже дефолт для вас.$.ajax() упрощает доступ ко всем параметрам.

0 голосов
/ 05 марта 2012

Поскольку вы используете Get, браузер настолько умен, что просто кеширует ваши данные. Чтобы решить эту проблему, отключите кэш или сгенерируйте случайную строку в качестве строки запроса для вашего URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...