0

私たちが管理しているXPageアプリケーションでは、ユーザーはそれを使用するときにランダムな時間に「データ損失」について長い間不平を言ってきました。つまり、ドキュメントを送信すると、ページが更新され、編集したばかりのすべてのフィールドが空白になるか、元のページが読み込まれたときの状態でデータが失われることがあります。何が起こっているのかを理解するのに多くの時間がかかりました。彼らが実行するすべてのアクションは現在ドキュメントに記録されているので、私はそれを確認することができます。私たちは何が起こっているのかを知り、それを回避する方法を見つける必要があります:

  1. Chrome/IEのウィンドウ1でドキュメントを開きます-ブラウザは重要ではありません。
  2. ブラウザで別のウィンドウを開き、アプリで同じドキュメントを検索して開きます(これにより、デフォルトで読み取りモードで開きます)
  3. 情報がたくさんあるため、ドキュメントには複数のタブがあります。ユーザーは、ウィンドウ2の読み取り専用コピーで情報をコピーするタブに移動します。
  4. 次に、ユーザーはウィンドウ1で編集可能なバージョンに情報を入力し始めます。つまり、別のタブ付きパネルにあるドキュメントの一部を参照したいので、ウィンドウで開きます。
  5. ユーザーが変更を送信します。残念ながら、彼らは別のウィンドウでドキュメントを開いてから、タブ付きパネルの1つをクリックして別の部分を開いたため、編集可能なバージョンはサーバーメモリ内のコンテキストから事実上関連付けが解除されます(私は推測します)-変更は失われます送信時に、ユーザーは再入力する必要があります。

読み取り専用バージョンを開き、タブ付きパネル内を移動しない場合は、編集可能なバージョンで問題なく作業を続けることができます。ドキュメントを送信すると、読み取りモードの場合でも、編集可能なバージョンとサーバーとのリンクが壊れているようです。なぜこれがあり、どのように防ぐことができますか?

絶対的な最後の手段として、別のウィンドウで開くのを防ぎたいと思います(ただし、方法はわかりません)。これは、多くの国の多くのユーザーにとって機能する方法になっています。何か案は??

要求に応じていくつかの詳細情報:わかりました。ドキュメントは問題レポートです。最初のタブには、発信者、影響を受けるモデルなどに関する基本的な詳細が表示されます。添付ファイルタブがあり、とりわけ、ソリューションタブがあります。

ユーザーが何をしているかを特定するとき、彼は基本的に、発信者の名前を思い出せず、発信者に解決策を伝えたいので、別のウィンドウでドキュメントを開いたと言いました。少し怠惰なようですが、とにかく。

John Mackayという人からの投稿がありました。少し前に、いくつかの理由で使用しているsessionScope変数で選択されたタブを追跡することについて考えています。したがって、タブのonclickイベントは、sessionScope.tabSelected変数を選択されたものに設定します。これは、ドキュメントを完全に更新するときに役立ちます。その人が最後に表示されたタブは、更新後にデフォルトで選択されているタブです。したがって、ユーザーが別のウィンドウでドキュメントを開くと、sessionscopevarによって同じタブも開きます。

ユーザーが[ソリューション]タブを表示していて、別のウィンドウでドキュメントを開くと、[ソリューション]タブも選択されます。次に、[情報]タブを選択して発信者の名前を見つける必要があります。これが、問題の原因です。スコープが小さい変数で修正される可能性がありますか?onclickで「更新または検証しない」と「部分実行」の設定を試しましたが、修正されませんでした。明日オフィスに戻ったときにタブクリックにスコープ変数を設定せずに試してみて、これで何かが修正されて報告されるかどうかを確認します

4

1 に答える 1

1

解決しました!私はタブ付きのパネルを持っていました、そして定義では、私は持っていました:

selectedTab="#{javascript:sessionScope.TabSelected}"

各タブには、を設定するイベントハンドラーがありましたsessionScope.TabSelected。部分実行モードを試しました。データを検証または更新しないでみましたが、何も機能しませんでした。

次に、各タブとselectedTabプロパティのイベントハンドラーを完全に削除しました。これで、1つのウィンドウで編集中のドキュメントを開き、別のウィンドウで読み取り、読み取りバージョンのタブをクリックできます。編集可能なウィンドウのドキュメントには影響しません。編集可能なバージョンを送信すると、サーバーによって拒否されません。これはまさに私が望んでいることです。

唯一の欠点は、今すぐドキュメントを完全に更新してページをリロードすると、元の場所ではなく、タブ付きパネルの最初のタブに戻ることです。これがユーザーに受け入れられることを願っています!

于 2012-08-31T10:29:16.770 に答える