Удаление параметра _dc в Ext - PullRequest
30 голосов
/ 12 января 2010

Использование Ext , по умолчанию Ext.Ajax добавить в GET-запрос _dc параметр. Например

GET /ConnViewProcessing/?_dc=1263286227619

Как убрать этот параметр?

PS: необходимо вручную кэшировать ответ на ETag и If-None-Match.

Ответы [ 13 ]

28 голосов
/ 12 января 2010

Установите для параметра disableCaching значение false:

Ext.Ajax.disableCaching = false;
22 голосов
/ 04 декабря 2012

При использовании Ext JS 4.1 и после добавления следующего кода в app.js параметр _dc исчезает:

// Disable _dc parameter

Ext.Loader.setConfig({
    disableCaching: false
});

// My App

Ext.application({
16 голосов
/ 12 сентября 2014

Правильный способ добиться этого с помощью Sencha Cmd 6.x - установить (глобальный) переключатель в app.json (поскольку все эти хаки и переопределения могут бесполезно мешать работе):

"loader": {
    "cache": true
},

Затем запустите sencha app refresh, чтобы обновить bootstrap.json.

приложения.

В качестве альтернативы можно настроить Ext.Loader (во время выполнения):

Ext.Loader.setConfig({disableCaching: false});

При прокрутке вверх и чтении актуального вопроса относительно Ext.Ajax (за запрос):

Ext.Ajax.request({url: '/ConnViewProcessing', disableCaching: false});

Результат: больше нет параметров _dc в скриптовых запросах.

@ см. Sencha Cmd 6.x - Микропогрузчик .

10 голосов
/ 14 июля 2014

Обратите внимание, что использование Ext.Loader изменилось в ExtJS 5.

В ExtJS 5 кэширование можно отключить:

  • временно, добавив «?cache» в конец URL
  • , установив файл cookie с именем ext-cache со значением 1
  • или отредактировав файл .sencha/app/Boot.js и установив для свойства '_config.disableCaching 'значение true (перезаписывая динамический поиск).
8 голосов
/ 04 апреля 2013

Я использую ExtJS 4.2, но это должно работать для Ext JS 4.1 и выше. В прокси есть свойство noCache, для которого нужно установить значение false.

Ext4.define('Server',{
    extend: 'Ext4.data.Model',
    fields: [
            {name: 'id'},
            {name: 'key'},
            {name: 'value'}
    ],
    proxy: {
            type: 'rest',
            url : 'yaddayaddayadda',
            noCache: false,
            reader : {
                    type: 'json'
            }

    }
});

Причина, по которой мой код говорит Ext4. потому что я использую режим песочницы при перемещении старого кода Ext JS 3x в 4.2

7 голосов
/ 10 апреля 2012

Это должно работать с extjs 4.0.7:

Ext.Loader.config.disableCaching = false;
4 голосов
/ 22 декабря 2011

Установка флага disableCaching на false (двойное отрицание - ууу!) На Ext.data.Connection должна помочь.

Подробнее смотрите в disableCaching -документации.

(Обратите внимание, что довольно много классов в Ext, кажется, имеют доступную опцию, поэтому вам, возможно, придется немного покопаться.)

2 голосов
/ 06 января 2014

Для тех, кто хочет установить «disableCaching: false» в Sencha Architect 3+, вот как ..:

  1. В окне инспектора проекта выберите верхний узел, "Применение"

  2. Затем в окне «Конфиг» под тем, где вы установить свойства объекта и т.д., выбрать «Конфигурация загрузчика» .. в моем случае Я должен был нажать «+» справа от этого, так как я не установил предметов пока нет. Это создаст новый объект «LoaderXX» в «Проекте». Инспектор "окно выше; Loader25 в моем случае.

  3. Теперь либо выберите новый объект в «Инспектор проектов», или нажмите на стрелку вправо рядом с новый "LoaderXX" (Loader25 в моем случае). Это приведет вас к свойства для объекта.

  4. Снимите флажок «disableCaching».

Сохраните проект и обновите окно браузера и наслаждайтесь постоянными точками останова и т. Д. В Chrome.

1 голос
/ 28 октября 2014

Вот как я это сделал:

Ext.Ajax.request({
    url: url,
    disableCaching:false
});
1 голос
/ 06 июня 2013

Единственный способ, которым я смог отключить _dc в ExtJS 4.2.x глобально для моего проекта:

Ext.define('Ext.data.Connection', {override:'Ext.data.Connection', disableCaching:false });
Ext.define('Ext.data.proxy.Server', {override:'Ext.data.proxy.Server', noCache:false });
Ext.define('Ext.data.JsonP', {override:'Ext.data.JsonP', disableCaching:false });

Это некрасиво, но есть еще идеи?

...