Pregunta

Uso Ext , default Ext.Ajax añadir a GET-_dc solicitud de parámetros. Por ejemplo

GET /ConnViewProcessing/?_dc=1263286227619

¿Cómo eliminar este parámetro?

PS: es necesaria para la respuesta caché manualmente a ETag y If-None-Match

.
¿Fue útil?

Solución

Establecer opción disableCaching en false:

Ext.Ajax.disableCaching = false;

Otros consejos

Uso de Ext JS 4.1, y después de añadir el siguiente código para app.js, el parámetro _dc desaparece:

// Disable _dc parameter

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

// My App

Ext.application({

La forma correcta para lograr que con Sencha Cmd 6.x es fijar un interruptor (global) en app.json (porque todos esos hacks y anulaciones podría interferir innecesariamente con la funcionalidad):

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

A continuación, ejecute sencha app refresh, con el fin de actualizar bootstrap.json de la aplicación.

Alternativamente, se puede configurar Ext.Loader (en tiempo de ejecución):

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

Al desplazarse hacia arriba y leer la pregunta real, en relación con Ext.Ajax (por solicitud):

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

El resultado: no hay parámetros más _dc sobre las solicitudes de secuencias de comandos

.

6.x Sencha Cmd -. El Microloader

Tenga en cuenta que el uso de Ext.Loader ha cambiado en ExtJS 5.

En ExtJS 5, el almacenamiento en caché se puede desactivar:

  • temporalmente mediante la adición de "?cache" al final de la URL
  • mediante el establecimiento de una cookie llamada 'ext-cache' con el valor de 1
  • o editando el archivo .sencha/app/Boot.js y ajuste de la '_config.disableCaching' propiedad para ser verdad (sobrescribir el dinámicas de búsqueda).

Estoy usando ExtJS 4.2, pero esto debería funcionar para Ext JS 4.1 y sigue. En el proxy hay una propiedad llamada NoCache debe establecer esto a falso.

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

    }
});

La razón de mi código dice Ext4. es porque estoy usando el modo de recinto mientras me muevo código 3x edad en Ext JS 4.2

Esto debería funcionar con extjs 4.0.7:

Ext.Loader.config.disableCaching = false;

Configuración de la bandera disableCaching a false (doble negación - yay!) En la Ext.data.Connection debe hacer el truco.

Para más información, ver la disableCaching -Documentación.

(Tenga en cuenta que un buen número de clases en Ext parecen tener la opción disponible, por lo que podría tener que ensuciar un poco.)

Para aquellos que quieren establecer "disableCaching: true" en Sencha Arquitecto 3+, aquí es cómo ..:

  1. En la ventana de inspección de proyectos, seleccione el nodo superior, "Aplicación"

  2. A continuación, en la ventana de "Configuración" más abajo que donde establecer las propiedades del objeto, etc., seleccione "Cargador Config" .. en mi caso Tenía que haga clic en el signo "+" a la derecha de esto, ya que no había puesto ningún artículos todavía. Esto creará un nuevo objeto "LoaderXX" en el "Proyecto Inspector" ventana de arriba; Loader25 en mi caso

  3. .
  4. Ahora bien, o seleccionar el nuevo objeto en el "Inspector del Proyecto" ventana, o haga clic en la flecha al lado del nueva "LoaderXX" (Loader25 en mi caso). Esto le llevará a la propiedades para el objeto.

  5. Desmarque la opción "disableCaching".

Guardar el proyecto y refrescar la ventana del navegador, y disfrutar de los puntos de interrupción persistentes, etc, etc en Chrome.

La única manera de que era capaz de desactivar _dc en ExtJS 4.2.x a nivel mundial en mi proyecto:

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 });

Esto es feo, pero alguna otra idea?

Esta es la forma en que hice esto:

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

Yo uso Ext.NET en la parte superior de Ext.JS. Se añade un poco más de vudú para Ext.js ... Traté de deshacerse de la dc = parámetro, pero todas las configuraciones mencionadas no funcionó. Por lo tanto, este es mi solución súper-eficaz, súper sucia:

Ext.Date.now = function () { return ""; }

Por lo que yo puedo ver, Ext.Date.now () sólo se utiliza para la lógica de almacenamiento en caché. Lo que debe ser la relatividad guardar.

decidí que quería que el caché sea destruido lado del cliente, pero del lado del servidor que estaba usando mi propio mecanismo de caché (de PHP APC).

Salí de la _dc en la solicitud ajax Ext, pero luego lo sacó de la REQUEST_URI, y luego usar el REQUEST_URI como base para la clave de caché

he encontrado esto útil: expresión regular para eliminar un parámetro de cadena de consulta

Si desarrolla bajo Sencha CMD se puede hacer como esto

http://localhost:1841/?disableCacheBuster

o simplemente

http://localhost:1841/?cache
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top