Проблема с Ajax-кешем? Или что-то другое? - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть веб-часть на странице sharepoint, которая запрашивает данные у сервера. Для этого я делаю ajax-запрос в своем коде, подобный следующему

function GetPeriod() {
    var period;
    $.ajax({
        url: GetBaseWSUrl() + 'MyWebService.asmx/GetPeriod',
        type: "post",
        dataType: "json",
        data: JSON.stringify({}),
        contentType: "application/json; charset=utf-8",
        async: false,
        success: function (data) {
            period = data.d;
        }
    });
    return period;
}

Внутри веб-службы MyWebService.asmx У меня есть метод GetPeriod(), который в свою очередь запрашивает данные в базе данных и возвращает эти данные в виде объекта JSON.

У меня проблема с фрагментом кода, который выполняет следующие действия:

  1. Сначала код вызывает функцию GetPeriod()
  2. Затем пользователь может изменить некоторые данные и отправить изменения на сервер
  3. Наконец, код снова вызывает функцию GetPeriod()

Когда я вызываю функцию GetPeriod() в точке n ° 3, я не могу видеть обновленные данные, даже если эти данные правильно сохранены в базе данных!

Сначала я подумал, что это проблема синхронности, и поэтому я добавил параметр async: false, но это не решило проблему. Теперь я думаю, что это проблема с кэшем (потому что данные были правильно сохранены в базе данных), поэтому я попытался с параметром cache: false, но ни одно из этих решений не работает для меня.

Я также пытался поставить базу данных под профилирование и вижу, что эффективный запрос вызывается, даже если я вижу несоответствие между временем, когда клиент отправил http-запрос, и временем, когда запрос был выполнен эффективно. в базе данных.

Я полностью заблудился об этом ....

Любая помощь?

1 Ответ

0 голосов
/ 11 ноября 2011

Я сталкивался с этим раньше. и решил это, поставив:

$.ajaxSetup({
    // Disable caching of AJAX responses */
    cache: false
});

Я не знаю, почему опция кеша как часть вашего $ .ajax не работает, но это может.

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