sigmat
4 Oct 2009, 11:35 PM
お世話になります。
DB内容を表示するGrid一覧のロジックを作成しているが、
初期はloader.load() を利用して、内容表示できます。
その後、DB内容を修正して、「更新」ボタン押下して(loader.load()再度実行)、
表示内容は変わらず、初回にキャッシュした情報が表示される。
↓ソースの一部↓
...
// 192.168.0.1/getDBInfo.do を アクセスすると、Json形式の最新DBデータが戻る
RequestBuilder builder = new RequestBuilder( RequestBuilder.GET, "http://192.168.0.1/getDBInfo.do?random=" + Math.random() );
builder.setHeader("Cache-Control", "no-cache");
HttpProxy<String> proxy = new HttpProxy<String>(builder);
JsonLoadResultReader<ListLoadResult<ModelData>> reader = new JsonLoadResultReader<ListLoadResult<ModelData>>( type );
final BaseListLoader<ListLoadResult<ModelData>> loader = new BaseListLoader<ListLoadResult<ModelData>>( proxy, reader);
ListStore<ModelData> store = new ListStore<ModelData>(loader);
final Grid<ModelData> grid = new Grid<ModelData>(store, cm); ...
...
// データ取込、初期表示
loader.load();
...
...
// ボタン定義、クリックすると、データを取り込む
Button load = new Button("更新", new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
loader.load();
}
});
キャッシュをアクセスしないように、以下の設定をしましたが、問題は解決してません。
①同一URLをアクセスしないように、リクエスト対象URLの後に&Math.random()を追加しています。
②Htmソースl:
<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache">
javaソース:
builder.setHeader("Cache-Control", "no-cache");
暫定対応として、2.0.3 ext-gwt BaseLoaderにproxy設定のメソッドを追加し
loader.load()を実行する前にproxyを再設定することにしました。
今回の対処方法は暫定的に、ソースに対してロジック追加を実施したが、
オリジナルソースを継続的に管理するのは難しいため、
ext-gwt側で恒久的な対処方法があれば、教えていただきたい。
★同じソースで、Gxt2.0.1では、問題なく、正しく更新して表示できます。
DB内容を表示するGrid一覧のロジックを作成しているが、
初期はloader.load() を利用して、内容表示できます。
その後、DB内容を修正して、「更新」ボタン押下して(loader.load()再度実行)、
表示内容は変わらず、初回にキャッシュした情報が表示される。
↓ソースの一部↓
...
// 192.168.0.1/getDBInfo.do を アクセスすると、Json形式の最新DBデータが戻る
RequestBuilder builder = new RequestBuilder( RequestBuilder.GET, "http://192.168.0.1/getDBInfo.do?random=" + Math.random() );
builder.setHeader("Cache-Control", "no-cache");
HttpProxy<String> proxy = new HttpProxy<String>(builder);
JsonLoadResultReader<ListLoadResult<ModelData>> reader = new JsonLoadResultReader<ListLoadResult<ModelData>>( type );
final BaseListLoader<ListLoadResult<ModelData>> loader = new BaseListLoader<ListLoadResult<ModelData>>( proxy, reader);
ListStore<ModelData> store = new ListStore<ModelData>(loader);
final Grid<ModelData> grid = new Grid<ModelData>(store, cm); ...
...
// データ取込、初期表示
loader.load();
...
...
// ボタン定義、クリックすると、データを取り込む
Button load = new Button("更新", new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
loader.load();
}
});
キャッシュをアクセスしないように、以下の設定をしましたが、問題は解決してません。
①同一URLをアクセスしないように、リクエスト対象URLの後に&Math.random()を追加しています。
②Htmソースl:
<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache">
javaソース:
builder.setHeader("Cache-Control", "no-cache");
暫定対応として、2.0.3 ext-gwt BaseLoaderにproxy設定のメソッドを追加し
loader.load()を実行する前にproxyを再設定することにしました。
今回の対処方法は暫定的に、ソースに対してロジック追加を実施したが、
オリジナルソースを継続的に管理するのは難しいため、
ext-gwt側で恒久的な対処方法があれば、教えていただきたい。
★同じソースで、Gxt2.0.1では、問題なく、正しく更新して表示できます。