什么可以使我的应用程序如此缓慢

时间:2012-07-03 02:11:15

标签: performance debugging facebook-graph-api

我正在制作一个应用程序,为你的脸书图片添加一些效果,但我不知道是什么让它太慢,你可以在这里检查应用程序:(https://apps.facebook.com/filter_box/)当你点击“usar una foto”时,需要花费大量时间来加载所有图像,我不知道它是CSS动画,fb查询,我的网络服务器还是别的什么,所以我想知道是否有人可以帮助我如何调试它,看看是什么让它加载这么慢,非常感谢你们提前!

这里的PPD是在usar.php或“usar una foto”中使用它的代码

<?php 
    include_once("config.php");
?>
<!DOCTYPE html>
<html lang="es" xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <meta charset=utf-8>
    <title>Minstagram</title>
    <link rel="stylesheet" href="style.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>   
  </head>
  <body>
  <div id="fb-root"></div>
  <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId: '<?php echo $facebook->getAppID() ?>',
          cookie: true,
          xfbml: true,
          oauth: true
        });
        FB.Canvas.setAutoResize();
        FB.Canvas.scrollTo(0,0);

      };
      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
    <div id="main">
        <?php 
        include_once("menu.php"); 

        $albums = $facebook->api('/me/albums?limit=0');

        ?>
        <ul id="breadcrumbs-two">
        <li><a href="/">Inicio</a></li>
        <li><a href="usar.php">Álbumes</a></li>
        </ul>

        <ul class="polaroids" >
        <li> <a href="album.php " title="Todas tus fotos"><img src="" alt="" /> </a> </li>

        <?php

        foreach($albums['data'] as $album)
        {
            // get all photos for album
            $photos = $facebook->api("/{$album['id']}/?fields=picture,name,count");
            $foto = $photos['picture'];
            $nombre = $photos['name'];


            $id = $photos['id'];
            $count = $photos['count'];

            $nombre = $nombre." (".$count.")";


            echo "<li> <a href=\"album.php?numero_album=$id&nombre_album=$nombre \" title=\"$nombre\"><img src=\"$foto\" alt=\"$nombre\" /> </a> </li>";
        }
        echo "</ul>";
        ?>  
    </div>
  </body>   
</html>

1 个答案:

答案 0 :(得分:1)

您的应用程序运行缓慢,因为您正在foreach循环内进行api调用。每次拨打电话时,服务器都会向Facebook发送请求并暂停执行,直到获得响应。

您应该使用batch.request语法或FQL一次性返回所有照片,然后在您的脚本中处理此大回复。