0

我正在使用 Zend_Gdata,如 YouTube 开发人员 API 文档中所述,尝试简单地拉入带有缩略图的最新两个视频。不幸的是,它非常慢并且延迟了页面其余部分的加载,因此我不得不禁用此代码并放入静态 HTML。我在想可能是查询了太多数据,但我没有看到getuserUploads. 我能想到的唯一其他解决方案是让它在页面加载后执行 AJAX 调用,但我仍然需要它更快。

如果使用 XML 会更快,有人可以指点我一些工作代码来获取标题、网址和缩略图吗?我首先找到并尝试的代码(使用简单 XML 函数)根本不起作用。

这是使用的代码很慢:

require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata_YouTube');

function printVideoFeed($videoFeed, $limit)
{
  $count = 1;
  foreach ($videoFeed as $videoEntry) {
    if ($count > $limit) { break; }
    echo "<li>";
    printVideoEntry($videoEntry);
    echo "</li>\n";
    $count++;
  }
}
function getAndPrintUserUploads($userName)                    
{     
  //Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
  $yt = new Zend_Gdata_YouTube(NULL, 'APPIDHERE', 'CLIENTNAMEHERE', 'ASDF-LONGDEVKEYHERE-TO-FIX-TOO-MANY-CALLS-PROBLEM');

  $yt->setMajorProtocolVersion(2);
  printVideoFeed( $yt->getuserUploads($userName), 2 );
}  
function printVideoEntry($videoEntry) 
{
    // get all thumbnails. Use the 2nd one (index of 1 in array) that is 180px wide
    $videoThumbnails = $videoEntry->getVideoThumbnails(); ?>

    <div class="theimg">
        <a href="<?php echo $videoEntry->getVideoWatchPageUrl(); ?>" target="_blank">
            <img src="<?php echo $videoThumbnails[1]['url']; ?>" alt="" width="160" />
        </a>
    </div>
    <span class="date">Video</span>
    <h4><a href="<?php echo $videoEntry->getVideoWatchPageUrl(); ?>" target="_blank"><?php echo $videoEntry->getVideoTitle(); ?></a></h4>
} 

getAndPrintUserUploads('USERNAMEHERE');
4

1 回答 1

0

乍一看,您并没有使用完整的 Zend MVC 模型,可以用来提高性能的一些方法是发送处理 VIEW 的 HTML 的方法,并使用来自 youtube 的 RSS 提要来发出此请求。

于 2012-05-24T19:57:57.653 回答