2012-04-22 7 views

答えて

3

unloadイベントについて、サーバー側に通知する全く100%信頼できる方法はありません。ブラウザのメイク/バージョンによっては、サーバーがajax(XMLHttpRequest)リクエストによってまったくヒットできない場合や、ajaxリクエストが正常に完了できる場合(ajaxリクエストが突然実行されているため)、競合状態に陥ることがありますタブ/ウィンドウが閉じられているため中止されたため、サーバが完全なajaxリクエストを取得することはありません。

あなたの最善の策は、サーバー側の破壊イベントをフックすることです。例えば。

@ManagedBean 
@ViewScoped 
public class Bean { 

    @PreDestroy 
    public void destroy() { 
     // This method is called whenever the view scope has been destroyed. 
     // That can happen when the user navigates away by a POST which is 
     // invoked on this bean, or when the associated session has expired. 
    } 

} 

それともあなたがすべてでそれを必要としない:@ViewScoped豆の場合、あなただけの@PreDestroyでアノテーション付きメソッドを作成する必要があります。セッションスコープのBeanの代わりにビュースコープのBeanのプロパティとしてデータを格納するだけで済みます。セッションを乱用している開発者は、豆、すなわち非常に多くの場合、要件のこの種を持っているスコープ;)もHow to choose the right bean scope?

+0

を参照してくださいどういたしまして – user1220373

+0

ありがとうございました。 – BalusC

関連する問題