2011-01-20 7 views
0

あなたがpagingToolbarを持つExtJSグリッドのあるページにいるとしましょう。しばらくこのページにいて、この間にPHPセッションの有効期限が切れたとしましょう。グリッド上で「次のページ」または「リロード」を押すと、セッションの有効期限が切れたため情報の取得が許可されていないことを知らせるメッセージが表示されるため、サーバーへの呼び出しは失敗します。ExtJS:store、pagingToolbar、PHP session expire

グリッドパネルでそれをどうやって処理して、それが詰まるのを防ぐことができますか?これが十分に明確であることを望みます。

さようなら!

答えて

0

何らかのハートビートメカニズムが必要です。つまり、PHPセッションを有効にするために定期的にサーバーにAJAX呼び出しを送信する必要があります。 Ext.directを使用している場合は、単純にこのようなハートビートを実装する最も便利な方法であるExt.direct.PollingProviderを使用することができます。 Ext.directを使用していない場合は、Ext.TaskMgrまたはExt.util.TaskRunnerを使用して、定期的にAJAXリクエストを発行できる機能を呼び出すことができます。

実装の詳細はOPのままです。

+0

こんにちはステファン、あなたの答えに感謝します。 これは問題を解決する興味深い方法の1つです。私はそれを見ていきます。しかし、サーバーが送信したデータがグリッドに表示される実際のコンテンツではなく、エラーメッセージ(JSONでエンコードされている可能性があります:「セッションが期限切れになりました...ログアウト... +リダイレクト "):このようにこの問題を処理することは可能でしょうか? – Danilo

+0

はい、それは絶対に可能です。 「ハートビート」リクエストは、ストアが発行する実際のデータリクエストとは完全に分離されているので、このハートビートイベントをリッスンするクライアントサイドのイベントハンドラを持つことができます(私は 'Ext.direct'アプローチについて話しています)。イベントに含まれるペイロードに反応します。私たちはまったく同じ目的のためにこれを行います:一定の時間が経過するまでセッションを生きたままにしてから、ユーザーをログアウトします。 –