私のXPageには、を使用しているように見えるxe:djxDataGrid
(dojox.grid.datagrid
)があります。xe:restService
dojox.data.JsonRestStore
プロキシがなくてもすべて正常に動作しますが、企業ポリシーにより、クライアントはプロキシ経由でアプリケーションにアクセスします。ユーザーがDataGridのデータを更新した後、プロキシの背後でアクセスすると古い値が表示されます。
REST Control /JsonRestStoreがデータを取得するためにajaxGETリクエストを送信する場合、Cache-Control
リクエストヘッダーにパラメーターはありません。Expires
また、Dominoは応答ヘッダーにパラメーターを配置しません。これが、古いバージョンのGETリクエストがプロキシによってキャッシュされる理由だと思います。
ブラウザでキャッシュを無効にしようとしましたが、プロキシがリクエストをキャッシュしていることを示すのに役立ちません。
私はこれが次のいずれかによって解決できると信じています:
Cache-Control
リクエストヘッダーにパラメータを設定するORExpires
応答ヘッダーにパラメーターを設定する
しかし、私はこれらのいずれかを設定する方法を見つけていません。XPageの場合、DominoはExpires:-1
応答ヘッダーを設定しますが、次のようなajaxGET要求の場合は設定しません。
/mypage.xsp/?$$viewid=!ddrg6o7q1z!&$$axtarget=view:_id1:_id2:callback1:restService1
これにより、JSONデータがJsonRestStoreに返され、プロキシによってキャッシュされます。
1つのオプションは、プロキシへの例外を取得して、このサイトへのリクエストがプロキシキャッシュをバイパスするようにすることです。しかし、例外は一般的に簡単に通過することはできません。
何か案は?ありがとう。
Update1
私の同僚は、dojox.data.JsonRestStoreによって行われたxhr GETリクエストをインターセプトし、キャッシュを防ぐためにURLに時間パラメーターを追加できることを提案しました。これについての私の質問は次のとおりです。
ページ上のすべてのDojoxhrリクエストでキャッシュを防止する
Update2
@SvenHasselbachには、すべてのxhrのキャッシュを防ぐための優れたソリューションがあります。
http://openntf.org/XSnippets.nsf/snippet.xsp?id=cache-prevention-for-dojo-xhr-requests
完全に機能しているようで、&dojo.preventCache=
パラメータがURLに追加され、リクエストはこのパラメータでも正しいJSONを返すようです。しかし、そのコードを使用すると、DataGridが機能しなくなります。すべてのxhrはこのエラーを引き起こします:
FirefoxとChromeで試してみました。xhrインターセプトがまだ実施されていないため、データの最初のページは引き続き読み込まれますが、後続のページには各セルに「...」のみが表示されます。