Github Page Bmob實現簡單動態功能

2022-07-21 07:33:09 字數 1993 閱讀 2170

bmob本是乙個移動應用雲服務的後端平台,但不僅限於移動應用,你同樣可以用它來做web應用的後端服務。

總的來說,後端需要關注兩個方面:資料和處理邏輯。

對於資料,bmob有自身的雲儲存,並提供物件關係對映來進行資料封裝。

對於處理邏輯,則直接在bmob控制台中擼處理邏輯的**,簡單粗暴有效。

實現功能:**訪問量(pv)的動態顯示。

涉及如下知識:

1、前後端資料互動

2、jsonp跨域訪問

效果見此:

前端區域性**:

用css實現乙個雙色圓環,vuejs實現簡單的單向資料繫結,很簡單是吧。

因為需要請求bmob後端伺服器的資料,必然存在跨域的問題。如果用get或者post的方式(無論是原生的get、post還是jquery封裝的get、post方法),均不能成功跨域,但是jquery通過ajax封裝了另外的方式,也即是jsonp的方式。

其中url為其中fc3679511e55f464為bmob應用的secret key,getvisitcount為雲端邏輯的方法。比如我的應用例項中有如下三個方法:

jsonp只能用get方式,即使你將type設定為post也無效。

datatype為jsonp,一旦你將datatype設定成jsonp,意味著這種方式將不同於普通的ajax的方式。

既然是通過get方式,請求引數必然在url中,callback就指定了引數名,而jsonpcallback指定引數值。

可以通過跟蹤請求報文的header來進一步驗證:

可以看到,由於沒有這頂jsonpcallback值,jquery會用jquery其後拼接隨即字串組成引數值。同時從響應報文的header中,發現bmob是用express搭建。

1、後端資料表

關於orm封裝的詳細官網文件請移步:

資料型別

2、後端處理邏輯

簡單來講就是查詢資料,更新資料,然後傳送資料:通過modules.odata獲得資料庫物件,呼叫db.findone()查詢資料。需要注意的是,通過odata資料庫物件查詢出來的data都是string型別,因此需要json.parse(data)解析成js物件型別。隨後更新資料,呼叫response.send()傳送資料,如果是物件,應該將物件字串轉化,即呼叫json.stringify(sendobj),如果為簡單的string類選擇可以直接拼接。

關於後端邏輯的官網文件請移步:

雲端邏輯模組解釋

通過跟蹤報文,我們也可觀察到response報文如下:

其實就是一段呼叫函式的js**。

但是這個奇怪的函式jquery31108369332181040243_1489933475565()並沒有在客戶端宣告和定義,反而是success繫結的**函式卻獲得了響應報文中的物件引數,何故?因為jquery會預設建立按個奇怪的函式,取得其引數,並將引數傳給success繫結的**函式。

客戶端取得資料之後,通過vuejs簡單的單項資料繫結,將資料繫結到view層,這樣就在github page上實現了動態顯示**訪問量的功能

實變函式 實分析總結

一 概述。實變函式,又叫實分析,整本書滿滿的證明就講了乙個勒貝格積分。最為大家所熟知的是用牛頓 萊布尼茨公式算的黎曼積分。但是黎曼積分本身依賴於函式的連續性,像不連續的狄利克雷函式就無法積分了。為了解決這一問題,勒貝格利用分割值域的方法,使得函式可積。但是分割出來的值域,只能放在一起,形式集合。如果...

NestedScrollWebview實現與優化

nestedscrollwebview實現與優化 原文如下 好久沒寫了,好像也沒什麼人關注我,呵呵,但我還是堅持寫一下,希望能幫到有需要的人!今天我來說一下nestedscrollwebview。最近在弄乙個需求,我需要用到coordinatorlayout webview 實現滾動互動效果,但要實...

saltstack keepalived實現高可用

本篇部落格承接saltstack安裝部署和saltstack grains,pillar,jinja模組的使用 建立目錄。root server1 keepalived vim files keepalived.conf configuration file for keepalived globa...