// THE FOUR URL'S TO ADD THE TOTAL SHARES
var Gal_All = "Link One";
var Gal_S_1 = "Link Two";
var Gal_S_2 = "Link Three";
var Gal_S_3 = "Link Four";
$.ajax({
type: 'GET',
url: 'https://graph.facebook.com/' + Gal_All,
success: function(data) {
showCount(data);
}
});
var fbshares;
var fbcomments;
function showCount(responseText) {
var json = responseText;
fbshares = json.shares;
fbcomments = json.comments;
$('#fb-share-count').html(fbshares);
if (fbcomments) {
$('#TotalComments').html(fbcomments + ' comments');
}
showTotal();
}
function showTotal() {
if (!tweets) {
tweets = 0
}
if (!fbshares) {
fbshares = 0
}
if (tweets !== undefined && fbshares !== undefined)
$('#total-share-count').html(tweets + fbshares);
}
从一个Facebook API获取数据我已经实现了,但我的画廊分为四页(Gal_All = all images and Gal_S_1, Gal_S_2, Gal_S_3 = categorized)
我已经通过我的Twitter计数器添加了所有四个页面,我想为Facebook做,所以它没有显示该页面的共享,但是所有四个页面。
请注意:评论提取只需来自Gal_All
答案 0 :(得分:1)
首先,您可以使用
为多个对象请求API数据/?ids=http://example.com/1,http://example.com/2,http://example.com/3
既然你想要第4个网址的评论,那还是需要一个额外的API请求(除非你想为其他三个提取评论,只是把它们扔掉,但这没有多大意义) - 但您可以使用batch request至少通过一个单个HTTP请求完成这两个不同的API调用。毕竟,HTTP请求是大部分时间向API发出请求的,所以如果速度是你最重视的因素(为什么不是你,用户不喜欢等待),我认为这是最好的方式。 (从纯粹的“美学”观点来看,使用承诺可能没问题,但它并没有改变多个HTTP请求非常慢的事实。)
答案 1 :(得分:0)
使用承诺:
var count = 0;
$.when(
$.ajax({
type: 'GET',
url: 'https://graph.facebook.com/' + Gal_All,
success: function(data) {
count += data;
}
});
$.ajax({
type: 'GET',
url: 'https://graph.facebook.com/' + Gal_S_1,
success: function(data) {
count += data;
}
});
$.ajax({
type: 'GET',
url: 'https://graph.facebook.com/' + Gal_S_2,
success: function(data) {
count += data;
}
});
$.ajax({
type: 'GET',
url: 'https://graph.facebook.com/' + Gal_S_3,
success: function(data) {
count += data;
}
});
).then(function() {
showCount();
});