返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > 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

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

主站蜘蛛池模板: 亚洲色无码国产精品网站可下载| 人妻无码久久精品| 国产精品无码免费视频二三区| 精品久久久久久无码中文字幕一区| 日本无码WWW在线视频观看| 免费A级毛片无码久久版| 国产做无码视频在线观看浪潮| 无码一区二区三区亚洲人妻| 久久无码精品一区二区三区| 精品无码久久久久久国产 | 在线观看无码的免费网站| 中文字幕精品无码一区二区 | 影院无码人妻精品一区二区| 国产精品va无码免费麻豆| 日韩精品专区AV无码| 人妻少妇看A偷人无码电影| 内射人妻少妇无码一本一道| 秋霞鲁丝片无码av| 亚洲av无码一区二区三区在线播放| av区无码字幕中文色| 亚洲AV无码专区电影在线观看| 亚洲国产精品无码av| 久久中文字幕无码专区| 国产成人无码精品久久久小说| 亚洲日韩乱码中文无码蜜桃| 中文字幕无码不卡一区二区三区| 亚洲一区无码中文字幕| YW尤物AV无码国产在线观看| 国产精品va无码二区| 一道久在线无码加勒比| 日韩少妇无码喷潮系列一二三| WWW久久无码天堂MV| 亚洲AV无码专区在线观看成人| 综合无码一区二区三区四区五区 | 人妻中文字系列无码专区| 一区二区无码免费视频网站| 久久久久亚洲AV无码专区首| 精品无码AV一区二区三区不卡| 亚洲va无码专区国产乱码| 久久久久亚洲AV成人无码| 亚洲AV区无码字幕中文色|