0

我们的网站允许人们上传图片,然后在 twitter 上分享和/或在 facebook 上点赞。有一个趋势页面,其中包含基于特定页面的 twitter 提及和 facebook 喜欢的总数的前 X 图像。

目前我能看到的唯一方法是通过(至少)对每张图片进行 2 次 API 调用以获取每个社交网站的计数,然后计算总数以最终按最“趋势”排序图片“ 第一的。我不认为这是应该的方式,因为如果我们有 3000 张图像要订购,可能需要很长时间才能做到这一点。

我不知道如何实现我们想要的(如果可能的话),这就是为什么我现在能想到的唯一解决方案是拥有我们自己的“喜欢”系统或每小时获取计数并创建一个一种缓存(但这仍然意味着每小时都会调用大量 API)。

4

2 回答 2

2

也许您可以根据服务器上的查看次数对图像进行排名。如果您愿意,您可以获取 10% 的最佳观看图像,并根据提及/喜欢(以及)对这些图像进行排名。这需要减少 90% 的 API 调用,但结果令人满意(我认为)。

于 2012-05-18T15:22:00.490 回答
0

几点建议:

  1. 将其限制在某个时间范围内(例如上周上传的图像)
  2. 将数据缓存一段时间,每个图像大约每小时执行一次 API 调用(甚至更长)
  3. 即使人们不在此页面上,也为此执行 API 调用,任何其他时间在站点的其他位置加载图像时,如果在过去一个小时内没有完成,请执行 API 调用。这将使一页加载时的请求数量错开。
  4. 限制一页加载中的请求数量。这意味着有人可能会加载一个页面,它只会发送 100 个请求(对于最长时间未请求的 100 个图像),其余图像将使用它们之前的值(即缓存值)。这完全取决于您的站点的活跃程度,您可能还需要每天/每周对所有站点进行查找,以确保缓存不会过时。
于 2012-05-18T15:55:16.137 回答