Неожиданное Кэширование Ajax приводит к IE8

Вы можете изменить настройки параметров графического процессора, добавив в начале своего скрипта Python:

gpu_options = tf.GPUOptions(visible_device_list="0")
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

«0» - это имя графического процессора, который вы хотите использовать. Вы можете получить список доступных графических процессоров, набрав команду nvidia-smi в командной строке терминала.


Эти 2 функции позволяют выбрать процессор или графический процессор, а в случае графического процессора - долю памяти, которая будет использоваться.

def set_cpu_option():
    os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"  # see issue #152
    os.environ["CUDA_VISIBLE_DEVICES"] = ""
    os.environ["CUDA_VISIBLE_DEVICES"] = ""


def set_gpu_option(which_gpu, fraction_memory):
    config = tf.ConfigProto()
    config.gpu_options.per_process_gpu_memory_fraction = fraction_memory
    config.gpu_options.visible_device_list = which_gpu
    set_session(tf.Session(config=config))
    # print('Ici le logger devrait parler')
    logger.info('Session opened with GPU ID: {} and fraction memory: {}.'.format(which_gpu, fraction_memory))
    return

set_gpu_option("0", 0.9)
135
задан hippietrail 15 March 2012 в 23:55
поделиться

5 ответов

IE печально известен своим агрессивное кеширование ответов Ajax. Поскольку вы используете jQuery, вы можете установить глобальный параметр:

$.ajaxSetup({
    cache: false
});

, который заставит jQuery добавлять случайное значение в строку запроса запроса, тем самым не позволяя IE кэшировать ответ.

Обратите внимание, что если у вас есть другой Ajax вызовы, происходящие там, где вы хотите кешировать, это отключит и для них. В этом случае переключитесь на использование метода $ .ajax () и включите эту опцию явно для необходимых запросов.

См. http: //docs.jquery.

176
ответ дан 23 November 2019 в 23:48
поделиться

Как упоминалось в marr75 , GET кешируются.

Есть несколько способов бороться с этим. Помимо изменения заголовка ответа, вы также можете добавить случайно сгенерированную переменную строки запроса в конец целевого URL. Сюда, IE каждый раз будет думать, что это другой URL-адрес.

Есть несколько способов сделать это (например, использовать Math.random () , изменение даты и т. Д.).

Вот один из способов сделать это:

var oDate = new Date();
var sURL = "/game/getpuzzleinfo?randomSeed=" + oDate.getMilliseconds();
$.get(sURL, null, function(data, status) {
    // your work
});
8
ответ дан 23 November 2019 в 23:48
поделиться

Получения всегда кэшируемы. Одна из стратегий, которая может сработать, - это отредактировать заголовок ответа и сказать клиенту, чтобы он не кэшировал информацию или очень скоро истек срок действия кеша.

3
ответ дан 23 November 2019 в 23:48
поделиться

Несколько возможностей:

  • Ваше .NET-приложение может не указывать туда, куда вы или они думаете, что оно указывает. Например, он по ошибке указал на тестовый сервер

  • . Если в представлении есть индекс в виде числа с плавающей запятой или числового значения, значение может отличаться от базового запроса из-за округления

  • Параметр ANSI_NULLS специфичен для представления когда он был создан. Если он отличается от настройки во время выбора (ов) в базовых таблицах, это может вызвать расхождения для определенных типов запросов

  • . Базовые структуры таблиц были изменены, а представление не обновлено (особенно проблема, если он использует " SELECT * ")

Я отредактирую этот пост, если вспомню о других.

РЕДАКТИРОВАТЬ: Вот пример того, как параметр ANSI_NULLS может отбросить ваши результаты:

1
ответ дан 23 November 2019 в 23:48
поделиться

Ответы здесь очень полезны для тех, кто использует jQuery или по какой-то причине напрямую использует объект xmlHttpRequest ...

Если вы используете автоматически сгенерированный прокси-сервер службы Microsoft решить не так просто.

Уловка заключается в использовании метода Sys.Net.WebRequestManager.add_invokingRequest в обработчике событий для изменения URL-адреса запроса:

networkRequestEventArgs._webRequest._url = networkRequestEventArgs._webRequest._url + '&nocache=' + new Date().getMilliseconds(); 

Я писал об этом в блоге: http://yoavniran.wordpress.com/2010/ 27.04 / ie-caching-ajax-results-how-to-fix /

0
ответ дан 23 November 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: