溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax如何實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能

發(fā)布時間:2021-05-18 14:27:06 來源:億速云 閱讀:218 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關Ajax如何實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

眾所周知,靜態(tài)頁面不僅速度快,而且對seo也有一定的幫助。前些日子,寫了一帖關于《在SAE平臺實現(xiàn)WordPress頁面純靜態(tài)化至KVDB》。我自己使用了一段時間后,發(fā)現(xiàn)提速確實很明顯。但是隨之而來的一個問題就是,由于文章靜態(tài)化后,頁面并不會經(jīng)過WordPress程序的處理,這樣就導致了文章的訪問量統(tǒng)計失效。當然,有一個叫做wp-postview的插件是可以解決這個問題的,但是我不是很喜歡插件,因為會拖慢整體的速度。所以這里就給出一個解決方案,就是使用Ajax來實現(xiàn)統(tǒng)計,同樣是基于SAE平臺的。

定義文章訪問統(tǒng)計類

這個其實在我前面的帖子里面已經(jīng)有提到過了KVDB+TaskQueue實現(xiàn)高效計數(shù)器,對這個做簡單修改即可。由于不經(jīng)過php處理,所以就不能使用隊列服務來計數(shù)。同樣定義計數(shù)類,并且放到網(wǎng)站根目錄下:

$countkey=$_GET['key'];//獲取要操作的計數(shù)key
if($countkey=="") exit;
if($_GET['action']=="add"){
  $cou=new counter($countkey);
  $cou->inc();//計數(shù)key對應的值加1
}elseif($_GET['action']=="get"){
  $cou=new counter($countkey);
  echo $cou->get();
}
class counter {
  private $kvdb;
  private $key;
  public function __construct($key){
    $this->kvdb=new CKvdb();
    $this->key=$key;
  }
  public function inc(){
    $num=$this->kvdb->get($this->key)+1;
    $this->kvdb->set($this->key,$num);
    return $num;
  }
  public function dec(){
    $num=$this->kvdb->get($this->key)-1;
    $this->kvdb->set($this->key,$num);
    return $num;
  }
  public function get(){
    $num=$this->kvdb->get($this->key);
    return intval($num);
  }
}
class CKvdb //這個類封裝的kvdb操作。
{
  private $db;
  function __construct(){
    $this->db=new SaeKv();
    $this->db->init();
  }
  public function set($key,$value)
  {
    $this->db->set($key,$value);
  }
  public function get($key)
  {
    return $this->db->get($key);
  }
}

添加計數(shù)代碼

在你的文章內(nèi)容頁面,添加如下的Ajax請求代碼,該代碼是基于jQuery的:

var keyTemp = $('#postTemp').text();
$.get('http://localhost/counter.php',{ action:'add',key:keyTemp });
$.get('http://localhost/counter.php',{ action:'get',key:keyTemp },function(data){
    $('#view').text(data+' Views');
});

keyTemp變量就是文章的別名,即存入KVDB中的鍵。我把該健存到一個隱藏的div身上,然后在使用Ajax的時候去獲取該div的內(nèi)容。Ajax中第一個get就是去訪問counter.php計數(shù)類,并且?guī)蠀?shù),實現(xiàn)訪問加1. 第二個get就是取訪問值了,把取到的值放到相應的地方中去。

什么是ajax

ajax是一種在無需重新加載整個網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術,可以通過在后臺與服務器進行少量數(shù)據(jù)交換,使網(wǎng)頁實現(xiàn)異步更新。

關于“Ajax如何實現(xiàn)對靜態(tài)頁面的文章訪問統(tǒng)計功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI