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...