3

GWTでのデータ管理について教えてください。旅行ポータル プロジェクトで Gwt を使用しており、Web ページは以前のページ データに関連付けられていますが、ブラウザの更新ボタンを押すとデータが失われます。この問題を管理する方法があれば教えてください。

4

4 に答える 4

1

URL フラグメントを作成して、データをエンコードできます。

文字列の場所 = "ny"; History.newItem("location="+location);

www.example.com#location=ny の URL フラグメントが生成されます

その後、ブラウザが更新されると、URL フラグメントをデコードして、場所が ny であると判断できます。

複数のパラメーターの場合、複雑なフラグメントを作成して解析できます。

History.newItem("start="+startLocation+"&end="+endLocation); URL は www.example.com#start=newyork&end=boston のようになります

于 2010-08-18T15:00:22.593 に答える
1

GWT History クラスを使用してページの更新を管理することはできません (戻る/進むのみ)。

更新ボタンをクリックすると、リクエストがサーバーに送信され、アプリケーションの状態がサーバーから再ロードされます。それで全部です。あなたはそれに対処しなければなりません。

データを失いたくない場合は、必要なときにサーバーに保存する方法を見つける必要があります。

于 2010-08-09T18:29:09.887 に答える
1

ユーザーが最新のブラウザーを使用している場合は、HTML5 機能の localStorage を使用して、ページの更新の間にデータをブラウザーに保存できます。

サポートされているブラウザについては、このスレッドを確認してください。

于 2010-08-10T13:06:06.723 に答える
0

基本的な考え方は、 URL フラグメント(URL の # の後の部分) に状態を保存することです。たとえば、your-site.com/app#page-1

フラグメントへの変更をリッスンするには、GWT のHistoryクラスを使用します。ユーザーが前後に移動したり、ページを更新したりすると、フラグメントが変更されます。

そのため、URL に#page-1vs#page-2などがある場合に、アプリにさまざまなことをさせることができます。

これに対するより一般化されたスケーラブルなソリューションは、gwt-platformPlaceアーキテクチャのようなものです (Presenter もあり、これは大規模なアプリにも適しています)。

于 2010-08-06T14:42:09.133 に答える