※この現象は6.0.45.0で修正されました。
対象製品とバージョン
Forguncy Builder 6.x
現象
ページ上にリストビューがあるページを表示した時、表示が完了する前にWebブラウザーの「戻る」ボタンを押すと、リストビューのクエリー条件の設定の有無に関わらず、データの全件取得がリクエストされて、それに起因してメモリ使用量が増大しアプリケーションが応答しなくなる問題が発生します。
回避方法
回避方法はありません。
Webブラウザーの「戻る」を使用しないようにしてください。
ただし、上記の例のようにページAとページBがあった場合、両方のページに同じ名前のリストビューを配置していると、「戻る」によってビューオブジェクト名が変更されたとしても、全件取得の問い合わせが発生することはありません。(つまり、ページBで指定していたクエリー条件の結果が、「戻る」によってページAのリストビューに戻されることになるため、ページAのリストビューに影響を与える動きになります。このため、ページAにリストビューが配置されておらず、同名のリストビューを配置して非表示にできるような画面構成の場合は、両方のページに同名のリストビューを配置しておくことで、アプリケーション全体の動きに影響を与えず回避することができます)。
現象が発生した場合、アプリケーションの再起動を行うことで改善します。
なお、この問題はForguncy 8では発生しません。
文書種別
不具合
検索キーワード: fgcbug
次のようなケースで発生します。
1.ページAからページB(リストビューあり)に遷移します。
2.ページBの生成に時間がかかります。
3.ユーザーがWebブラウザーの「戻る」ボタンをクリックして戻ります。
4.ページBの生成が完了していない場合でも、3の操作によってページはページAに戻ります。しかしながら、内部ではページBの生成処理として全件取得のデータ要求が実行されており、問題の発生に繋がります。
内部では、ページBを表示するために、現在のページ名とListView名で構成された名前のビューオブジェクト(例:「ページB,ListVIew1」)が作成されています。
ユーザーがWebブラウザーの「戻る」ボタンをクリックすると、現在のページが、ページBからページAに変更されて、ビューオブジェクト名は「ページA,ListView1」に変更されてしまいます。ページAには対象のリストビューが存在しないため、本来ページBで設定されているクエリー条件等が無視され、全件取得の問い合わせが発生します。
このように、内部で最初に要求したものが処理中に変更されてしまったため、データベースのすべてのデータを要求する動作が発生します。これが何度も繰り返して行われると、メモリが逼迫してアプリケーション全体が応答不能になります。