【问题标题】:Social Counters Causing Slow Load导致加载缓慢的社交计数器
【发布时间】:2013-10-25 05:45:48
【问题描述】:

我正在为我的博客在主页上添加一些社交计数器。该博客显示 10 篇文章,并通过无限滚动加载更多文章。

考虑到每个帖子必须执行 3 个请求,并且还必须显示 10 个帖子 - 这意味着在显示页面之前必须经过 30 个请求。

使用 get_transient / set_transient 似乎可以使页面立即加载,但每小时后,1 人的加载时间会很糟糕 - 只是想知道我是否可以通过使用 jQuery 检查变量是否已更改(如果他们有,然后让它在页面加载后执行请求)。

我真的一点也不了解 jQuery,希望能得到一些帮助。

function getShares($url){
    $fbcount = get_transient('share_count');
    if ($fbcount !== false) return $fbcount;
    $fbcount = 0;

    $fql = "SELECT share_count FROM link_stat WHERE url = '".$url."'";
    $apifql = "https://api.facebook.com/method/fql.query?format=json&query=".urlencode( $fql );
    $json = file_get_contents( $apifql );
    $data = json_decode($json);
    $fbcount = $data[0]->share_count;
    set_transient('share_count', $fbcount, 60*60);
    return $fbcount;
}

function getPlus1($url) {
    $gpcount = get_transient('plusone_count');
    if ($gpcount !== false) return $gpcount;
    $gpcount = 0;

    $html =  file_get_contents( "https://plusone.google.com/_/+1/fastbutton?url=".urlencode($url));
    $doc = new DOMDocument();   $doc->loadHTML($html);
    $counter=$doc->getElementById('aggregateCount');
    $gpcount = $counter->nodeValue;
    set_transient('plusone_count', $gpcount, 60*60);
    return $gpcount;
}

function getTweets($url){
    $tweetcount = get_transient('tweet_count');
    if ($tweetcount !== false) return $tweetcount;
    $tweetcount = 0;

    $json = file_get_contents( "http://urls.api.twitter.com/1/urls/count.json?url=".$url );
    $ajsn = json_decode($json, true);
    $tweetcount = $ajsn['count'];
    set_transient('tweet_count', $tweetcount, 60*60);
    return $tweetcount;
}

【问题讨论】:

  • 最好使用任何延迟加载插件..
  • 我想这样做是因为我可以自定义计数周围的图标。对于其他插件,我没有看到任何选项。

标签: php jquery facebook twitter google-plus


【解决方案1】:

将结果存储到数据库中,如果结果超过一小时 - 请重新下载。

(当然还有用新数据再次将其放入数据库)。

你甚至不需要 jQuery。

【讨论】:

  • 我的印象是 get/set transient 使用 SQL 来保存其数据。它现在缓存很好,但我只是想知道每小时一个用户,如果这可以加快一些。
  • 会很快的,别担心速度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 2017-03-01
  • 1970-01-01
相关资源
最近更新 更多