web-dev-qa-db-ja.com

Extの_dcパラメータを削除する

Ext を使用して、デフォルト Ext.Ajax GET-request _dcパラメータに追加します。例えば

GET /ConnViewProcessing/?_dc=1263286227619

このパラメータを削除するにはどうすればよいですか?

PS:ETagIf-None-Matchへの応答を手動でキャッシュする必要があります。

30
ko1ik

disableCachingオプションをfalseに設定します。

Ext.Ajax.disableCaching = false;
28
Lukman

Ext JS 4.1を使用し、次のコードをapp.jsに追加すると、_dcパラメータが消えます。

// Disable _dc parameter

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

// My App

Ext.application({
22
Pencroff

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パラメータはもうありません。

@see Sencha Cmd 6.x-マイクロローダー

16
Martin Zeitler

ExtJS 5ではExt.Loaderの使用が変更されていることに注意してください。

ExtJS 5では、キャッシングを無効にすることができます。

  • 一時的にURLの末尾に「?cache」を追加する
  • 「ext-cache」と呼ばれるcookieに値1を設定する
  • または、ファイル.sencha/app/Boot.jsを編集し、'_config.disableCaching 'プロパティをtrueに設定します(動的ルックアップを上書きします)。
10
Robert Watkins

私は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に移動するときにサンドボックスモードを使用しているためです

8
Vince Cordaro

これはextjs 4.0.7で動作するはずです。

Ext.Loader.config.disableCaching = false;
7
Night Warrier

Ext.data.Connection でフラグdisableCachingfalse(二重否定-yay!)に設定すると、うまくいくはずです。

詳細については、 disableCaching -documentationを参照してください。

(Extのかなりの数のクラスが利用可能なオプションを持っているように見えるので、あなたは少しぐったりする必要があるかもしれないことに注意してください。)

4
Morten Siebuhr

Sencha Architect 3+で「disableCaching:false」を設定したい人のために、ここに方法を示します。

  1. プロジェクトインスペクタウィンドウで、最上位ノード「アプリケーション」を選択します。

  2. 次に、オブジェクトのプロパティなどを設定するその下の[Config]ウィンドウで、[Loader Config]を選択します。私の場合、まだ項目を設定していないため、この右側の[+]をクリックする必要がありました。 。これにより、上の[プロジェクトインスペクタ]ウィンドウに新しい "LoaderXX"オブジェクトが作成されます。私の場合、Loader25。

  3. ここで、[プロジェクトインスペクタ]ウィンドウで新しいオブジェクトを選択するか、新しい[LoaderXX](私の場合はLoader25)の横にある右矢印をクリックします。これにより、オブジェクトのプロパティが表示されます。

  4. 「disableCaching」アイテムのチェックを外します。

プロジェクトを保存してブラウザウィンドウを更新し、Chromeで永続的なブレークポイントなどをお楽しみください。

2
Ads

これは私がこれをした方法です:

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

私のプロジェクトでExtJS 4.2.xの_dcをグローバルに無効にできる唯一の方法:

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

これは醜いですが、他のアイデアはありますか?

1
star.absorber

キャッシュをクライアント側で破棄することにしましたが、サーバー側では独自のキャッシュメカニズム(PHPのAPC)を使用していました。

Ext ajaxリクエストに_dcを残しましたが、REQUEST_URIから削除し、REQUEST_URIをキャッシュキーのベースとして使用しました

私はこれが便利だと思いました: クエリ文字列から1つのパラメーターを削除する正規表現

0
user2066719

Ext.JSの上でExt.NETを使用しています。 Ext.jsにいくつかのブードゥーを追加します... dc =パラメーターを削除しようとしましたが、言及されたすべての構成が機能しませんでした。だから、これは私の超効果的で超汚いソリューションです:

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

私の知る限り、Ext.Date.now()はキャッシュロジックにのみ使用されます。したがって、相対性を保存する必要があります。

0
Johannes Hoppe

Sencha CMDで開発する場合、次のようにすることができます

http://localhost:1841/?disableCacheBuster

あるいは単に

http://localhost:1841/?cache
0
nahab