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> 

或试试这个(如果用户禁用了本地存储/cookies,将不起作用)

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