Solução
Definir disableCaching
opção para false:
Ext.Ajax.disableCaching = false;
Outras dicas
Usando o Ext JS 4.1 e depois de adicionar o seguinte código a app.js
, a _dc
O parâmetro desaparece:
// Disable _dc parameter
Ext.Loader.setConfig({
disableCaching: false
});
// My App
Ext.application({
A maneira correta de realizar isso com o Sencha CMD 6.x é definir um interruptor (global) app.json
(Porque todos esses hacks e substituições podem interferir desnecessariamente na funcionalidade):
"loader": {
"cache": true
},
Então corra sencha app refresh
, para atualizar o aplicativo bootstrap.json
.
Alternativamente, pode -se configurar Ext.Loader
(em tempo de execução):
Ext.Loader.setConfig({disableCaching: false});
Ao rolar para cima e ler a pergunta real, sobre Ext.Ajax
(por pedido):
Ext.Ajax.request({url: '/ConnViewProcessing', disableCaching: false});
O resultado: não há mais parâmetros _dc nas solicitações de script.
@Vejo Sencha CMD 6.x - O Microader.
Observe que o uso do Ext.Loader mudou no ExtJS 5.
No extjs 5, o cache pode ser desativado:
- temporariamente adicionando "
?cache
"até o final do URL - Definindo um cookie chamado 'ext-cache' com o valor de 1
- ou editando o arquivo
.sencha/app/Boot.js
e definir o'_config.disableCaching
'Propriedade a ser verdadeira (substituindo a pesquisa dinâmica).
Estou usando o ExtJS 4.2, mas isso deve funcionar para o Ext JS 4.1 e ON. No proxy, há uma propriedade chamada Nocache, você deve definir isso como 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'
}
}
});
A razão pela qual meu código diz ext4. é porque estou usando o modo Sandbox à medida que movo o código antigo Ext JS 3x para 4.2
Isso deve funcionar com o ExtJS 4.0.7:
Ext.Loader.config.disableCaching = false;
Definindo o sinalizador disableCaching
para false
(Negação dupla - yay!) No Ext.Data.Connection deve fazer o truque.
Para mais, veja o Desabilando-documentação.
(Observe que algumas aulas no Ext parecem ter a opção disponível, então você pode ter que superar um pouco.)
Para aqueles que desejam definir "desabilitação: false" no Sencha Architect 3+, eis como ..:
Na janela do Inspetor do Projeto, selecione o nó superior, "Aplicativo"
Então, na janela "Config" abaixo daquela onde você define as propriedades do objeto, etc., selecione "Config do carregador" .. No meu caso, tive que clicar no "+" à direita disso, pois ainda não havia definido itens . Isso criará um novo objeto "loaderxx" na janela "Inspetor do projeto" acima; Loader25 no meu caso.
Agora, selecione o novo objeto na janela "Inspetor do Projeto" ou clique na seta direita ao lado do novo "Loaderxx" (Loader25 no meu caso). Isso o levará às propriedades do objeto.
Descarga o item de "desabilitação".
Salve o projeto e atualize a janela do navegador e desfrute de pontos de interrupção persistentes, etc, etc. no Chrome.
A única maneira de desativar o _DC no ExtJS 4.2.x globalmente no meu projeto:
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 });
Isso é feio, mas quaisquer outras idéias?
Foi assim que eu fiz isso:
Ext.Ajax.request({
url: url,
disableCaching:false
});
Eu uso o Ext.Net no topo do Ext.js. Ele adiciona um pouco mais de vodu ao ext.js ... tentei me livrar do parâmetro dc =, mas todas as configurações mencionadas não funcionaram. Então, esta é minha solução super eficaz e super-deirty:
Ext.Date.now = function () { return ""; }
Até onde eu posso ver, ext.date.now () é usado apenas para a lógica de cache. Portanto, deve ser uma economia de relatividade.
Decidi que queria que o cache fosse destruído do lado do cliente, mas o lado do servidor eu estava usando meu próprio mecanismo de cache (APC do PHP).
Deixei o _DC na solicitação EX Ajax, mas depois a removi do request_uri e depois uso o request_uri como base para a chave de cache
Eu achei isso útil: Expressão regular para remover um parâmetro da string de consulta
Se você se desenvolver sob Sencha CMD, você pode fazer assim
http://localhost:1841/?disableCacheBuster
ou apenas
http://localhost:1841/?cache