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

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

主站蜘蛛池模板: 无码激情做a爰片毛片AV片| 国产精品无码一区二区三区电影| 国产乱人伦Av在线无码| 无套内射在线无码播放| 久久久久无码精品国产app| 亚洲成a人无码av波多野按摩 | 无码精品黑人一区二区三区| 久久精品中文字幕无码绿巨人| 精品乱码一区内射人妻无码 | 国产做无码视频在线观看浪潮| 无码人妻丰满熟妇区免费| 国产成人无码区免费A∨视频网站| 国产AV无码专区亚洲AV手机麻豆| 无码H黄肉动漫在线观看网站| 日韩精品无码人成视频手机| 亚洲av无码成人影院一区| 亚洲AV无码一区二区乱孑伦AS| 国模无码视频一区| 最新无码人妻在线不卡| 久久人妻av无码中文专区| 久久久久久无码国产精品中文字幕 | 中文字幕日韩精品无码内射| 国产精品白浆在线观看无码专区| 久久ZYZ资源站无码中文动漫| 国产精品免费无遮挡无码永久视频| 国模无码一区二区三区| 无码高潮爽到爆的喷水视频app | 亚洲爆乳少妇无码激情| 久久久久亚洲AV成人无码网站| 中文字幕人妻三级中文无码视频 | 无码人妻久久一区二区三区免费 | 无码人妻少妇久久中文字幕| 亚洲AV无码成人精品区日韩| 无码任你躁久久久久久老妇App| 少妇精品无码一区二区三区| 久久久久久国产精品无码超碰| 无码精品一区二区三区免费视频 | 无码av中文一区二区三区桃花岛 | 亚洲精品无码永久在线观看| 少妇无码?V无码专区在线观看| 人妻少妇伦在线无码|