我想用YAHOO API做一个小站。网站搜索结果,输出的标题名直接再进行图片搜索。2个foreach套用,实际上等于运行了1次网页搜索和10次图片搜索,这样一个过程需要很长时间。有什么方法可以分步加载吗?
我想要的效果是:打开页面后,先显示网页搜索的结果(第一个foreach可以重复2遍。一个做显示,一个做第二次搜索的关键字输入) ;然后根据图片ID号,依次逐个加载图片。
求一个详细可行的方法,希望能得到一组推荐代码,或一个DEMO的教程。谢谢。url="http://boss.yahooapis.com/ysearch/web/v1/jquery?appid={api-id}"
...
$data = json_decode($body);
foreach ($data->ysearchresponse->resultset_web as $result){//第一个foreach
$url1='http://boss.yahooapis.com/ysearch/images/v1/'.$result->{'title'}.'?appid={api-id}&count=1';
...
$data1 = json_decode($body1);
foreach ($data1->ysearchresponse->resultset_images as $result1){//
$strstr=$strstr+1;
echo '<img id="'.$strstr.'" src="'.$result1->thumbnail_url.'" />';
}
}
我想要的效果是:打开页面后,先显示网页搜索的结果(第一个foreach可以重复2遍。一个做显示,一个做第二次搜索的关键字输入) ;然后根据图片ID号,依次逐个加载图片。
求一个详细可行的方法,希望能得到一组推荐代码,或一个DEMO的教程。谢谢。url="http://boss.yahooapis.com/ysearch/web/v1/jquery?appid={api-id}"
...
$data = json_decode($body);
foreach ($data->ysearchresponse->resultset_web as $result){//第一个foreach
$url1='http://boss.yahooapis.com/ysearch/images/v1/'.$result->{'title'}.'?appid={api-id}&count=1';
...
$data1 = json_decode($body1);
foreach ($data1->ysearchresponse->resultset_images as $result1){//
$strstr=$strstr+1;
echo '<img id="'.$strstr.'" src="'.$result1->thumbnail_url.'" />';
}
}
代码没有什么优化的空间,而是你应该优化运行时间,把处理返回信息的代码,在第二次请求的时候来做
网站搜索结果,输出的标题名(10条)再次填入进图片搜索,进行二次搜索。
我只对jquery有研究。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div id="new-nav"></div>
<div id="new-nav1"></div>
<div id="new-nav2"></div>
<div id="new-nav3"></div>
<div id="new-nav4"></div>
<div id="new-nav5"></div>
<div id="new-nav6"></div>
<div id="new-nav7"></div>
<div id="new-nav8"></div>
<div id="new-nav9"></div>
<div id="new-nav10"></div>
<script type="text/javascript">
$("#new-nav").load("b.php #title");//加载b.php里的div#title进入a.php的div#new-nav,下面依次类推
$("#new-nav1").load("b.php #aba1");
$("#new-nav2").load("b.php #aba2");
$("#new-nav3").load("b.php #aba3");
$("#new-nav4").load("b.php #aba4");
$("#new-nav5").load("b.php #aba5");
$("#new-nav6").load("b.php #aba6");
$("#new-nav7").load("b.php #aba7");
$("#new-nav8").load("b.php #aba8");
$("#new-nav9").load("b.php #aba9");
$("#new-nav10").load("b.php #aba10");
</script>
</body>
</html>b.php,后台执行API代码
url="http://boss.yahooapis.com/ysearch/web/v1/jquery?appid={api-id}"//网站搜索API
...
$data = json_decode($body);
echo '<div id="title">';
foreach ($data->ysearchresponse->resultset_web as $result){
...
}//第一个foreach,获得网站搜索的标题。率先输出。
echo '</div>'; foreach ($data->ysearchresponse->resultset_web as $result){//重复第一个foreach,这次获得的网站标题,作为图片搜索的关键字。
$url1='http://boss.yahooapis.com/ysearch/images/v1/'.$result->{'title'}.'?appid={api-id}&count=1';//图片搜索API
...
$data1 = json_decode($body1);//图片搜索的json_decode
foreach ($data1->ysearchresponse->resultset_images as $result1){//
$strstr=$strstr+1;
echo '<div id="aba'.$strstr.'">;
echo '<img src="'.$result1->thumbnail_url.'" />';
echo '</div>';//序列化每一组图片,给予各自ID号,执行完一个,被a.php调出。
}