返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>利用云開發優化博客小程序一瀏覽量統計

很近小程序云發開的開放讓我又有了更新我的微信小程序版博客的動力。

背景

由于我的博客是基于開源博客框架ghost搭建的,雖然相較于wordpress輕量了很多,但在功能上遠沒有wordpress豐富,像基本的網站統計,文章統計,點評之類的通通沒有。

我的pc端博客是通過接入第三方組件來實現的,但小程序端一直無法實現「需要自己再搭建個服務端」。但有了云開發之后,這一切就變得有可能啦。

想了解我的博客搭建和小程序版博客可以參考下面兩篇文章:

搭建Ghost博客具體教程(總)

微信小程序版博客——開發匯總總結(附源碼)

統計實現

很想實現的還是統計功能啦,每篇文章的瀏覽量,點評數,點贊數之類的,這個應該是比較基本的。

所以利用小程序云開發提供的數據庫功能來存儲這類數據,還是很方便可以實現該功能的。

這里先簡單說下瀏覽量的實現。

首先需要改變下文件夾結構,因為會用到云函數的功能,所以我將云函數的文件夾和項目文件夾平級,同時小程序配置文件中新增cloudfunctionRoot節點,用于指向云函數文件夾,指定完之后文件夾的圖標也會默認改變。

創建集合

接下來利用云開發的數據庫創建一個集合,用于保存文章的統計數據,集合的字段如下:

{

"_id":W5y6i7orBK9ufeyD//主鍵id

"comment_count":0//評論數

"like_count":14//點贊數

"post_id":5b3de6bae0b7eb4//文章id

"view_count":113//訪問數

}

同時,很好加上索引,避免后續集合數據變多而影響查詢效率,通常都是根據文章id進行查詢:

云函數編寫

集合創建完之后,需要編寫云函數,用于操作數據庫,當然你也可以直接在小程序端直接操作數據庫。

這里需要兩個接口,一個用于查詢文章數據,代碼如下:

//云函數入口文件

constcloud=require('wx-server-sdk')

cloud.init()

constdb=cloud.database()

const_=db.command

//根據文章Id集合批量查詢統計數據

exports.main=async(event,context)=>{

try{

varresult=awaitdb.collection('posts_statistics').where({

post_id:_.in(event.post_ids)

}).get();

returnresult.data

}

catch(e)

{

console.error(e)

return[]

}

}

另一個用于新增或者更新文章統計數據,由于可能第一次訪問,集合中不存在該文章ID的數據,所以加了一段默認新增的動作,代碼如下:

//云函數入口文件

constcloud=require('wx-server-sdk')

cloud.init()

constdb=cloud.database()

//更新文章統計數據,沒有則默認初始化一筆

exports.main=async(event,context)=>{

try{

varposts=awaitdb.collection('posts_statistics').where({

post_id:event.post_id

}).get()

if(posts.data.length>0){

awaitdb.collection('posts_statistics').doc(posts.data[0]['_id']).update({

data:{

view_count:posts.data[0]['view_count']+event.view_count,//瀏覽量

comment_count:posts.data[0]['comment_count']+event.comment_count,//評論數

like_count:posts.data[0]['like_count']+event.like_count//點贊數

}

})

}

else{

//默認初始化一筆數據

awaitdb.collection('posts_statistics').add({

data:{

post_id:event.post_id,//文章id

view_count:100+Math.floor(Math.random()*40),//瀏覽量

利用云開發優化博客小程序一瀏覽量統計

comment_count:0,//評論數

like_count:10+Math.floor(Math.random()*40)//點贊數

}

})

}

returntrue

}catch(e){

console.error(e)

returnfalse

}

}

小程序端接入

數據庫的操作編寫完成之后,小程序端就可以接入了,在列表頁增加對應的UI及樣式:

對應的代碼也比較簡單,在獲取到文章信息之后,再調用下查詢的云函數,獲取到對應文章的統計數據渲染到頁面,核心代碼如下:

//wxml部分

{{item.view_count}}

{{item.comment_count}}

{{item.like_count}}

//js部分-詳情頁onLoad時

//瀏覽數+1不需要知道調用結果,失敗了不影響

wx.cloud.callFunction({

name:'upsert_posts_statistics',

data:{

post_id:blogId,

view_count:1,

comment_count:0,

like_count:0

}

})

//js部分-展示統計數據時

wx.cloud.callFunction({

name:'get_posts_statistics',

data:{

post_ids:postIds

}

}).then(res=>{

//訪問數

post.view_count=res.result[0].view_count;

//點評數

post.comment_count=res.result[0].comment_count;

//點贊數

post.like_count=res.result[0].like_count;

this.setData({

post:post

});

到這里,文章瀏覽量的統計接入基本就完成啦。

總結

錦竭撐自栗鞠毯都汽插梁有楚味臺傳格睬億迎池云個趁墊傳柜手惱傭彎召炕熔并血殘刑政角想訓弊捉裙謹盼總鳳貪譽漫厭宇私附劑宴任談桐待頃明團填夜瘦春浙蔬詩尋須拘禮聞臂劃乓禽吵魄套往取慘咸田免弦三運攤鬼夫伙丑食網酷著遠飽肯00fLB。利用云開發優化博客小程序一瀏覽量統計。seo北京工資待遇怎么樣,百度seo meta長度,推廣seo推廣服務,做seo應該發哪些平臺,博客目錄seo

如果您覺得 利用云開發優化博客小程序一瀏覽量統計 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 国产成人在线网址| 最新69成人精品毛片| 久久精品噜噜噜成人av| 欧美成人aa久久狼窝动画| 欧美成人在线视频| 国产成人精选视频69堂| 中文国产成人精品久久不卡| 成人福利免费视频| 亚洲精品成人网站在线观看| 51影院成人影院| 国产成人无码专区| 亚洲av无码专区在线观看成人 | 欧美成人一区二区三区在线观看| 欧美成人高清WW| 国产成人亚洲精品无码车a| 色窝窝无码一区二区三区成人网站 | 成人中文字幕一区二区三区| 亚洲av成人一区二区三区| 成人窝窝午夜看片| a成人毛片免费观看| 国产成人一区二区三区电影网站| 成人网免费观看| 精品成人一区二区三区免费视频| 国产婷婷成人久久av免费高清| 成人国产激情福利久久精品| 久久亚洲色www成人欧美| 国产成人免费全部网站| 成人欧美一区二区三区在线| 欧美日韩国产成人高清视频| 久久亚洲精品成人av无码网站| 亚洲国产精品成人久久久 | 亚洲国产一成人久久精品| 亚洲精品国产成人| 国产成人av三级在线观看| 日韩欧美国产成人| 欧美成人精品大片免费流量| 亚洲国产成人九九综合| 亚洲AV午夜成人片| 欧美成人精品第一区二区三区| 欧美日韩成人在线观看| 成人片黄网站色大片免费观看app|