2013-08-02 1 views
0

안녕하세요. 내 새로운 Facebook 응용 프로그램에서 사용자 프로필 화면을로드하려고합니다. 문제는 단지 너무 오래 걸린다는 것입니다. 이것이 내가 그림을 얻기 위해 현재하고있는 것입니다. - 제가 이것을 빨리하기 위해 할 수있는 것이 있습니까? 실행에 ~ 10 초 이상 걸립니다.Facebook 그래프 api php 너무 느린 사진보기

라이트 박스를 사용 중이며 화면의 첫 번째 이미지를 클릭 한 후에로드하는 데 추가 사진이 실제로 필요합니다.하지만 그 방법은 확실하지 않습니다.

//First off we need to get some profile pics for the user: 
    $getuseralbumsurl = "https://graph.facebook.com/". $row['FB_ID'] ."?fields=albums&access_token=" 
     . $access_token; 
    $getuseralbums = json_decode(file_get_contents($getuseralbumsurl)); 
    $getuseralbums = $getuseralbums->albums; 

    foreach($getuseralbums->data as $album){//Getting profile pics for user. 

     if($album->type == "profile"){ //get profile picture album 
      $albumid = $album->id; 
      $photosurl = "https://graph.facebook.com/" . $albumid . "/photos?access_token=". $access_token ."&limit=3"; 

      $profilephotos = json_decode(file_get_contents($photosurl)); 

      $counter = 0; 
      foreach($profilephotos->data as $image){ 

       if($counter == 3)//we only want 3 photos from the album. 
       break; 

       if($lowerbound == 0) 
        $photosurlarray['group1'][] = $image->source; 
       else if($lowerbound == 1) 
        $photosurlarray['group2'][] = $image->source; 
       else 
        $photosurlarray['group3'][] = $image->source; 

       $counter++; 
      } 
      break;//we don't need anymore albums. 
     } 

고마워요!

답변

0

배치 요청을 사용하고 페이지로드가 끝난 후 (AJAX 사용) 백그라운드에서 실행되도록 작업을 생성하여 문제를 해결했습니다. 이것은 트릭을 완료 한 것 같습니다!

1

또 다른 방법은 PHP를 통해 캐시 방법을 사용하는 것입니다. PHP를 통해 이미지를 주기적으로 5 분마다 확인한 다음 결과 HTML을 .txt 문서 또는 유사한 방식으로 저장하도록 설정했습니다. 그런 다음 .txt 문서의 코드를 실제 웹 사이트로 가져 오기만하면됩니다. 이것은 귀하의 웹 사이트 방문자에게 즉시 로딩을 보장합니다.