волейбол Кэш Очистить [дубликат]

RegExp.prototype.test обновляет свойство регулярных выражений lastIndex, чтобы каждый тест начинался с остановки последнего. Я бы предложил использовать String.prototype.match, поскольку он не обновляет свойство lastIndex:

!!'Foo Bar'.match(re); // -> true
!!'Foo Bar'.match(re); // -> true

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

В качестве альтернативы вы можете просто сбросить свойство lastIndex:

result.push(re.test('Foo Bar'));
re.lastIndex = 0;
result.push(re.test('Foo Bar'));
25
задан AADProgramming 10 September 2015 в 07:57
поделиться

3 ответа

Если вы используете любой из классов запроса по умолчанию, реализованных в волейболе (например, StringRequest, JsonRequest и т. д.), затем вызовите setShouldCache (false) прямо перед добавлением объекта запроса в залп RequestQueue:

request.setShouldCache(false);
myQueue.add(request);

Если у вас есть собственная реализация класса Request, вы можете вызвать setShouldCache (false) в конструкторе вашего класса.

Это решение отключает кеширование для каждого запроса индивидуально. Если вы хотите отключить кеширование в глобальном масштабе из библиотеки volley, вы можете навсегда установить для переменной mShouldCache значение false в классе Request.

63
ответ дан Hungry Coder 23 August 2018 в 02:01
поделиться
  • 1
    Я добавил его непосредственно в свой пользовательский запрос. Благодарю. – Proverbio 15 August 2014 в 21:47
  • 2
    Когда вы говорите, что отключите его глобально, вы имеете в виду исходный код волейбола как часть вашего проекта и установите mShouldCache в false? или другими способами? – TypingPanda 18 June 2015 в 14:22
  • 3
    @TypingPanda Я имел в виду, изменяя переменную в библиотеке залпонов. Причина этого: у вас могут быть свои собственные множественные реализации класса Request. Если вы хотите отключить кеширование для всех из них, для этого потребуется меньше времени. В противном случае, если вы не хотите ничего менять в библиотеке, вы можете вызвать setShouldCache (false) в каждой из ваших реализаций. – Hungry Coder 10 July 2015 в 03:26
  • 4
    вы спасли мое время – bhavesh kaila 26 February 2016 в 05:49
  • 5
    Жизнь спасателя. Благодарю. – Edward 18 May 2016 в 04:57

Вы можете создать RequestQueue из конструктора и передать объект NoCache в качестве первого параметра. Второй параметр - сетевой транспорт, основанный на вашем выборе AndroidHttpClient или HttpURLConnection.

RequestQueue queue = new RequestQueue(new NoCache(), new BasicNetwork(new HurlStack()));

Подробнее см. В этой документации .

Согласно документации, BasicNetwork является реализацией сети по умолчанию для Volley.

11
ответ дан computingfreak 23 August 2018 в 02:01
поделиться
request.setShouldCache(false);

, похоже, недостаточно для запросов GET. однако очистка кеша перед добавлением в очередь, похоже, помогает

myRequestQueue.getCache().clear();

. Я помещаю это в свой метод getRequestQueue() в одиночном сингле Volley. перед возвратом очереди.

6
ответ дан Versa 23 August 2018 в 02:01
поделиться
  • 1
    Никогда не было такой проблемы. спасибо за этот ответ. Все было кэшировано, очистка кеша до возвращения очереди помогла. – Abir Hasan 11 July 2016 в 06:41
Другие вопросы по тегам:

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