您好,在我的新Facebook应用程序中,我尝试在屏幕上为用户加载一系列个人资料图片。问题是,它只需要太长时间。这就是我目前正在拍摄的照片 - 我还能做些什么来加快速度吗?执行时需要~10秒+。
我正在使用灯箱,只有在点击屏幕上的第一张图片时才真正需要加载其他图片,但不知道该怎么做。
//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 :(得分:1)
另一种方法是通过PHP使用缓存方法。您将其设置为每隔5分钟通过PHP定期检查图像,然后将生成的HTML保存为.txt文档或类似文档。然后,您只需将.txt文档中的代码检索到您的实时网站即可。这样可以保证您网站上任何访问者的即时加载。
答案 1 :(得分:0)
我最终通过使用批处理请求解决问题,并在页面加载完成后使用AJAX生成作业以在后台运行。 这似乎已经成功了!