Закладка первой загруженной вкладки пользовательского интерфейса jQuery кэшируется, хотя ajaxOptions: cache: false указано - PullRequest
2 голосов
/ 26 января 2012

У меня есть вкладки, где каждая вкладка загружается с помощью ajax. Я не хочу кэшировать (я хочу ajax-запрос каждый раз, когда вкладка кликается). Я создал вкладки следующим образом:
$('#tabs').tabs({ ajaxOptions: { cache: false}, spinner: 'Loading task...' });

Благодаря вышесказанному, когда я нажимаю на вкладку, добавляется специальная переменная:
http://localhost:3252/Task/Show/2?_=1327576289684
Это предотвращает предотвращение кэширования, делая URL уникальным, поэтому запрос всегда отправляется на сервер.

Однако, когда я открываю страницу с вкладками, они инициализируются и загружается вкладка по умолчанию (Задача 1). В этом случае переменная не добавляется:
http://localhost:3252/Task/Show/1
что приводит к загрузке страницы из кэша.

Я изменил поведение, изменив URL-адрес вкладки, чтобы он содержал уникальный номер для каждого запроса (в моем случае это галочки):

@<div id="tabs">
    <ul>
        @Code
            For Each task In Model.Tasks
                @<li><a href="@task.Url?_=@DateTime.Now.Ticks"><span>@task.Name (@task.Number)</span></a><span class='ui-icon ui-icon-close'>Remove task</span></li>                   
            Next
        End Code
    </ul>
    @*@Html.EditorFor(Function(m) (m.Tasks))*@
</div>

Вопрос в том, почему я должен это делать? Разве это не то, что вы хотели бы решить с помощью ajaxOptions: { cache: false}? Кто-нибудь сталкивался с этой проблемой раньше и нашел хорошее решение? Я что-то упустил или это ошибка?

1 Ответ

0 голосов
/ 26 января 2012

Вы пытались принудительно установить основной кэш настроек jQuery ajax на false? Может случиться так, что по умолчанию вам нужен общий параметр, охватывающий все запросы AJAX. Вы можете поместить это в свой документ готов:

// Force requested pages not to be cached by the browser
$.ajaxSetup({cache:false});

Документы для справки: http://api.jquery.com/jQuery.ajax/

...