Frage

Mit Ext , default Ext.Ajax hinzufügen _dc Parameter GET-Anfrage. Zum Beispiel

GET /ConnViewProcessing/?_dc=1263286227619

Wie Sie diesen Parameter entfernen?

PS:. Es ist notwendig, um manuell Cache Reaktion auf ETag und If-None-Match

War es hilfreich?

Lösung

Set disableCaching Option auf false:

Ext.Ajax.disableCaching = false;

Andere Tipps

Mit Ext JS 4.1, und nach dem folgenden Code app.js Hinzufügen der _dc Parameter verschwindet:

// Disable _dc parameter

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

// My App

Ext.application({

Der richtige Weg, dass mit Sencha Cmd 6.x zu erreichen, ist ein (global) Schalter in app.json einzustellen (weil alle diese Hacks und überschreibt möglicherweise unnötig mit der Funktionalität stören):

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

Dann läuft sencha app refresh, um die Anwendung des bootstrap.json zu aktualisieren.

Alternativ kann man Ext.Loader konfigurieren (zur Laufzeit):

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

Beim Scrollen nach oben und der eigentlichen Frage zu lesen, über Ext.Ajax (pro Anfrage):

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

. Das Ergebnis: nicht mehr _DC Parameter auf scripted Anfragen

Sencha Cmd 6.x -. Die Micro

Beachten Sie, dass die Verwendung von Ext.Loader in ExtJS 5 geändert hat.

In ExtJS 5 kann Caching deaktiviert werden:

  • vorübergehend von "?cache" an das Ende der URL hinzugefügt
  • durch Setzen eines Cookies 'ext-Cache' mit dem Wert von 1
  • genannt
  • oder durch Editieren der Datei .sencha/app/Boot.js und Einstellung der '_config.disableCaching Eigentum um wahr zu sein (die dynamische Suche überschreiben).

Ich verwende ExtJS 4.2, aber dies sollte für Ext JS 4.1 und arbeiten. In dem Proxy gibt es eine Eigenschaft namens nocache Sie diese auf false gesetzt ist.

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

    }
});

Der Grund mein Code sagt Ext4. ist, weil ich den Sandbox-Modus, wie ich alt Ext JS 3x Code in 4.2

bewegen bin mit

Dies sollte mit extjs arbeiten 4.0.7:

Ext.Loader.config.disableCaching = false;

Zur Einstellung der Flagge disableCaching auf false (doppelte Verneinung - yay) auf der Ext.data.Connection sollte es tun.

Für weitere Informationen, sehen Sie die disableCaching -dokumentation.

(Bitte beachten Sie, dass nicht wenig Klassen in Ext scheinen die Option zur Verfügung zu haben, so dass Sie ein bisschen verarschen könnten müssen.)

Für diejenigen, die gesetzt werden sollen "disableCaching: false" in Sencha Architekten 3+, hier ist, wie ..:

  1. Im Inspektorfenster Projekt, wählen Sie den obersten Knoten, "Anwendung"

  2. Dann in den "Config" Fenstern unter dem, wo Sie legen Sie die Objekteigenschaften, usw., wählen Sie „Loader Config“ .. in meinem Fall Ich hatte die „+“ rechts von diesem klicken, da ich nicht gesetzt hatte Artikel noch. Dadurch wird ein neues „LoaderXX“ Objekt im „Projekt erstellen Inspektor“Fenster oben;. Loader25 in meinem Fall

  3. Wählen Sie nun entweder das neue Objekt in der „Projekt Inspektor“ Fenster, oder klicken Sie auf den Pfeil nach rechts neben dem neue "LoaderXX" (Loader25 in meinem Fall). Dadurch werden Sie auf die nehmen Eigenschaften für das Objekt.

  4. Remove Markierung des "disableCaching" aus.

Speichern Sie das Projekt und aktualisieren Sie das Browserfenster, und genießen Sie persistent Breakpoints, etc, etc in Chrome.

Die einzige Art, wie ich zu deaktivieren _DC konnte in ExtJS 4.2.x global auf meinem Projekt:

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

Das ist hässlich, aber andere Ideen?

Dies ist, wie ich tat dies:

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

Ich verwende Ext.NET oben auf Ext.JS. Es fügt etwas mehr Voodoo Ext.js ... Ich habe versucht, die dc = Parameter, um loszuwerden, aber alle genannten Konfigurationen haben nicht funktioniert. Also, das ist meine uber-wirksam, uber-schmutzige Lösung:

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

Soweit ich sehen kann, Ext.Date.now () wird nur für die Caching-Logik verwendet. So speichern Relativität sein sollte.

Ich entschied, dass ich die Cache wollte Client-Seite zerstört werden, aber Server-Seite war ich mit meinem eigenen Caching-Mechanismus (PHP APC).

verließ ich die _DC in dem Ajax-Request Extern, aber dann ist es aus der REQUEST_URI entfernt, und verwenden Sie dann die REQUEST_URI als Grundlage für die Cache-Taste

Ich fand diesen nützlich: Regulärer Ausdruck einen Parameter zu entfernen von Query-String

Wenn Sie unter Sencha CMD entwickeln Sie können wie folgt tun

http://localhost:1841/?disableCacheBuster

oder

http://localhost:1841/?cache
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top