我正在使用 ASP.NET 4.0 构建一个应用程序。
我有一个名为条目的表。条目可以通过 Facebook 点赞。我想实现通过喜欢排序的能力,所以我采用存储每个条目的喜欢数量并使用该列进行排序的方法。问题是获得喜欢的数量所涉及的开销。我认为我现在使用的方法可以改进,因为仅获取 13 个条目的数据需要 4 秒,这太长了。
我正在使用 FB graph api 和JSON.NET来解析响应。在下面的代码中,我有一个条目类型的列表,我使用应用程序设置和条目 ID 获得条目的类似 url。这就是我正在做的事情:
foreach (Entry entry in entries)
{
int likes;
try
{
// the url that is tied to the entry
string url = "http://graph.facebook.com/?ids=" + Properties.Settings.Default.likeUrl + "?id=" + entry.EntryId;
//open a WebClient and get the results of the url
WebClient client = new WebClient();
Stream data = client.OpenRead(url);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
//parse out the response
var json = JObject.Parse(s);
//shares are how many likes the entry has
likes = Convert.ToInt32(json.First.First.SelectToken("shares").ToString());
}
catch (Exception ex)
{
likes = 0;
}
}
正如我所说,这种方法非常昂贵。如果有人可以提出更好的方法来做我在这里尝试的事情,我将非常感谢您的帮助。非常感谢!