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

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

主站蜘蛛池模板: 久久人妻内射无码一区三区 | 中日韩精品无码一区二区三区| 无码一区二区三区老色鬼| 天堂Av无码Av一区二区三区| 无码午夜人妻一区二区不卡视频| 天天看高清无码一区二区三区| 人妻少妇乱子伦无码专区| 无码人妻一区二区三区在线水卜樱| 成年午夜无码av片在线观看| 久久水蜜桃亚洲AV无码精品| 亚洲精品无码乱码成人 | 亚洲欧洲日产国码无码久久99 | 国产午夜无码视频免费网站| 亚洲情XO亚洲色XO无码| 精品无码免费专区毛片| 国产精品多人p群无码 | 在线精品免费视频无码的| 国产精品午夜福利在线无码 | 日韩AV高清无码| 人妻aⅴ中文字幕无码| 亚洲Av永久无码精品三区在线 | 色欲aⅴ亚洲情无码AV蜜桃| 亚洲VA中文字幕无码毛片| 亚洲av无码不卡私人影院| 国产午夜av无码无片久久96| 无码不卡av东京热毛片| 亚洲中文字幕无码一区| 无码日韩人妻AV一区二区三区| 在线观看成人无码中文av天堂 | 性色AV一区二区三区无码| 久久久久久AV无码免费网站下载| 天堂一区人妻无码| 久久久久亚洲AV无码麻豆| 亚洲中文字幕无码爆乳app| 亚洲AV无码精品色午夜果冻不卡| 人妻无码aⅴ不卡中文字幕| 国产av无码专区亚洲av毛片搜| 久久亚洲中文无码咪咪爱| 亚洲av无码专区在线观看下载 | 人妻丰满熟妇岳AV无码区HD| 国产成人A亚洲精V品无码|