2

私は最初、Ext JS アプリ用にこれを持っています。

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

JS ファイルに Unix タイムスタンプを追加して、ブラウザがファイルをキャッシュしないようにするので、これは素晴らしいことです。その後、ユーザーがブラウザのキャッシュをクリアする必要なく、アプリを更新できます。そうしないと、アプリが壊れるリスクがあります。

問題は、これによりプログラムの読み込みが遅くなることです (ファイルを毎回取得する必要があるため)。?_dc=1359704445222 (タイムスタンプ値)を手動で設定して、アプリを更新したときにのみ値が変更されるようにする簡単な方法があるかどうか疑問に思っています。

tl;dr: Ext JS アプリの _dc パラメータ値を手動で設定できるようにしたい

4

2 に答える 2

1

残念ながら、タイムスタンプは Sencha ではハードコードされています。ext-all-dev.js を変更して (または、別のファイルを使用している場合は類似点を探して)、次のコードを置き換えることで簡単に変更できます。

Ext.Date.now() の次のインスタンスをバージョン番号に置き換えます。

....
noCacheUrl = url + (this.getConfig('disableCaching') ? ('?' + this.getConfig('disableCachingParam') + '=' + Ext.Date.now()) : ''),
....
url = Ext.urlAppend(url, Ext.String.format("{0}={1}", me.cacheString, Ext.Date.now()));

また、new Date().getTime() の次のインスタンスをバージョン番号に置き換えます。

....
url = Ext.urlAppend(url, (options.disableCachingParam || me.disableCachingParam) + '=' + (new Date().getTime()));
....
params[cacheParam] = new Date().getTime();

これを行うと、disableCaching がオンになっている限り、UI に反映されるはずです。

于 2013-09-19T16:12:30.960 に答える
1

動的読み込みは、開発にのみ使用してください。リリース バージョンを取得したら、Sencha Cmdを使用してアプリケーションのプロダクション ビルドを作成し、ユーザーにデプロイします。

于 2013-02-01T16:38:54.250 に答える