セッション後要求の処理
サーバ上から、不必要になったデータなどを削除している間、Web ページがユーザのブラウザにまだ表示されている可能性があるため、終了させることができません。そのセッションが終了されたことを知らずに、[注文完了] ボタンを連続してクリックしてしまうことがあります。
これに対応するため、[注文完了] ボタンがクリックされたときに表示される、TicketConfirm ページの機能を強化します。(%session オブジェクトの Order の値を検索することで) 保留されている注文があるかどうかをチェックするコードを追加します。保留されている注文がない場合、メッセージを表示します。
タイムアウトでセッションが終了すると、そのセッションに関係する %session オブジェクト (および %session オブジェクトに格納されているすべてのデータ) は失われることに注意してください。ユーザからの次の要求は、新しい %session オブジェクトを伴う、新しいセッションの一部となります。
—TicketConfirm.OnPage—
TicketConfirm.OnPage
ClassMethod OnPage() As %Status
{
&html<<html>
<head>
</head>
<body>>
If ($D(%session.Data("Order"))) {
Do ..CompleteOrder()
Write "Thank you for using Caché Cinema!<br>",!
}
Else {
Write "Your order expired before it was completed."
}
&html<</body>
</html>>
Quit $$$OK
}