jQuery (или, может быть, браузер) - это скрипты, загруженные ajax - PullRequest
3 голосов
/ 28 января 2010

Я загружаю страницу просмотра через $.ajax() вызов с помощью jQuery. Я явно устанавливаю опцию «cache» в true. Нигде в приложении мы не используем $.ajaxSetup() для указания другого.

Вот настройка запроса ajax:

$(".viewDialogLink").click(function() {
    $.ajax({
        url: $(this).attr("href"),
        dataType: "html",
        type: "GET",
        cache: true,
        success: function(data) { $("#dlgViews").html(data).dialog("open"); }
    });
    return false;
});

Ответ возвращается успешно. Откроется диалоговое окно и отобразится некоторое содержимое.

ОДНАКО

В возвращенном html есть теги сценария. Например:

<script type="text/javascript" src="http://../jsapi/arcgis/?v=1.4"></script>

Теперь - в тексте ответа они выглядят нормально. Но фактические запросы браузера для этих сценариев, как видно из FireBug, включают параметр прерывателя кэша в строке запроса . Они выглядят так:

http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.4&_=1264703589546.

Ни один из других ресурсов в загруженном html - css или изображения - не включает прерыватель кэша в своем запросе.

Что происходит? Как отключить этот кеш-выключатель?

1 Ответ

3 голосов
/ 29 января 2010

Мне удалось воспроизвести вашу проблему на моем тестовом сервере. Затем я перешел с jquery 1.3.2 на 1.4.1. В Jquery 1.4.1 он не добавляет строку, разрушающую кеш.

 <script type="text/javascript" src="jquery-1.4.1.min.js"></script>

Конечно, использование 1.4.1 может не подойти вам.

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