我需要重复以下查询才能增加Google图片的效果。单击按钮后执行代码。
Google文档说:
Google自定义搜索和Google Site Search最多可返回10个结果 每个查询。如果要向用户显示10个以上的结果, 你可以发出多个请求(使用start = 0,start = 11 ... 参数)并在单个页面上显示结果。在这种情况下, Google会将每个请求视为单独的查询,如果您是 使用Google Site Search时,每个查询都会计入您的限制。
要获得更多结果,您应该拨打多个电话。在每个不同的 打电话,增加参数值' start'到了10点。
现在你不能一次向谷歌询问超过10个结果。那么你 必须再次询问从11开始要求10个结果。所以在下一个 查询,保持num = 10和start = 11。现在您可以获得所有结果 改变起始值。
如何重复以下操作并每次都增加start
参数?
function googleImages() {
var myCx = "MY_CX";
var myKey = "MY_KEY";
$.getJSON("https://www.googleapis.com/customsearch/v1", {
q: termS + " in 1930 in " + country,
alt: "json",
searchType: "image",
cx: myCx,
num: 10,
start: 0,
key: myKey,
rights: "cc_publicdomain",
filter: "1",
safe: "high",
imgType: "photo",
fileType: "jpg"
},
function (data) {
$.each(data.items, function(i,item) {
$(".my_images .row .grid").append('<div class="col-sm-4 grid-item"><div class="thumbnail"><img class="img-responsive" src="' + item.link + '"></div></div>');
});
var $grid = $('.grid').packery({
// options
itemSelector: '.grid-item',
percentPosition: true
});
$grid.imagesLoaded().progress( function() {
$grid.packery('layout');
});
});
}
答案 0 :(得分:1)
你应该在调用之间保存start
值,例如你可以使用这样的模式:
function createGoogleImagesLoader(initialValue) {
var _start = initialValue || 0;
var imagesCount = 10;
return function() {
$.getJSON("https://www.googleapis.com/customsearch/v1", {
...
num: imagesCount,
start: _start
},..);
_start += imagesCount;
}
}
var googleImages = createGoogleImagesLoader();
googleImages() // load from 0 to 10
googleImages() // load from 10 to 20 etc.