1

問題

PHPのtry catchで以下のJSコードを使用しています。基本的に私はfacebookアプリを作っています。ユーザーのセッションがタイムアウトすると、見栄えの悪いエラーメッセージが表示されますが、ユーザーがページを更新すると、完全に機能し始めます。そのため、PHPのtry catchを使用して、セッションがタイムアウトしたかどうかを確認し、タイムアウトになった場合は catch で以下の JavaScript コードを実行しました。ユーザーに手動で行うように求めるのではなく、ページを自動更新したい。

以下のコードはページを更新しますが、その後も更新を続けます。私はjavascriptが初めてなので、この状態になったらどうすればこの状態から抜け出すことができるか教えてください。

コード

    try{        

        $facebook = new Facebook(array(
          'appId'  => '123456789',
          'secret' => 'some_secret',
        ));

        $accessToken = $facebook->getAccessToken();
        $facebook->setAccessToken($accessToken);

        $user_profile = $facebook->api('/me','GET');

        $username= $user_profile['email'];
        $fb_id= $user_profile['id'];
    }catch(Exception $e){

        location.reload(true);
        console.log('Session has been timed out');
    }
4

1 に答える 1

0
<script type="text/javascript">
    if(window.location.hash==-1)
    {
        //add a # if it doesn't exist
        newurl = document.URL+"#";
        location = "#";

        //Refresh page
        location.reload(true);

    }
</script> 

またはこれを試してください(ユーザーがローカルストレージ/ Cookieを無効にしている場合は機能しません)

function()
{
  if( window.localStorage )
  {
    if( !localStorage.getItem( 'firstLoad' ) )
    {
      localStorage[ 'firstLoad' ] = true;
      location.reload(true);
    }  
    else
      localStorage.removeItem( 'firstLoad' );
  }
}
于 2013-06-26T17:27:17.880 に答える