首頁  >  文章  >  微信小程式  >  小程式雲端開發和非雲端開發區別

小程式雲端開發和非雲端開發區別

Guanhui
Guanhui原創
2020-05-29 17:50:3922516瀏覽

小程式雲端開發和非雲端開發區別

小程式雲端開發與非雲端開發差異

1、雲端開發無需建置伺服器,小程式雲端提供了一個免費基礎版本,如果是非雲端開發需要搭建伺服器。

2、雲端開發專案可以快速上線,可以不依賴外部的雲端伺服器,來進行資料庫的增刪改查,以及物件儲存。

微信小程式雲開發的坑

1、基礎版CDN流量太少

#在我在最近做的一個專案中,僅在開發與測試期間,上傳/下載了相冊原畫質的圖片就用了765MB(四五天時間),當時我就意識到了事情的嚴重性,因為這個項目上線後需要每天為百名用戶來使用,如果像我測試的那樣,可能CDN流量兩天就用完了。一旦CDN流量用完升級配置,一個月最少都要30塊錢,這個價錢可以在外面購買一個很好的物件儲存服務了。

不過還好我發現這個問題比較早,及時控制了上傳圖片的質量,每次上傳圖片程式自動都進行一次壓縮,每張大概在200kb以內,在正式使用到現在也就消耗了1mb左右的CDN流量。 (日均活躍用戶約60人)

2、雲端資料庫限制多

這個坑我覺得對我來說是最深的一個,雲端資料庫的限制有兩面。第一個面向是小程式端取得資料條數限制。第二個面向是雲端資料庫讀寫權限限制。

(1)小程式端讀取限制

小程式端直接請求資料庫,每次最多可以讀取20條資料

使用雲端函數請求資料庫,再透過小程式端觸發雲端函數,每次最多讀取100條資料

要是每次需要請求的資料超過100條,那就需要使用skip分次請求再進行組合了,具體操作可查看官方文件或其他部落格。

(2)雲端資料庫讀寫權限限制

在說這個坑之前先說一下,小程式雲端資料庫為非關係型資料庫,不能使用外鍵內鍵聯合查詢。 (與上下文無關,本文未提及)

雲端資料庫最開放的權限是:所有使用者可讀,僅創建者可變更。

也就是說你建立了一筆記錄,他人無法進行修改或刪除,這也導致了一系列的問題。下面舉一個我實際項目的例子。

eg:現有一個多座位的自習室供使用者預定,使用者每次預定可以選擇一個使用時間,到這個時間結束後這個座位可以被其他人再次預定。

簡單的一個場景,在正常的邏輯下我們資料庫的自習室表裡應該有這三個主要的字段就夠了,自習室標識(r_id),自習室到期時間(r_date),自習室是否可預定(r_flag)。

當一個使用者選擇預定一個自習室時,我只需要判斷這個自習室的r_flag是否為true即可,如果為true,使用者可以預定,預定成功後r_date刷新,r_flag置為false即可。

但是,小程式雲端開發提供的雲端資料庫,最開放的權限為所有使用者可讀,僅創建者可改。就導致上述邏輯行不通。我們就需要更複雜一點的邏輯來實現這個功能。

我當時的做法是:每次使用者預定自習室時都提交一條數據,將每個自習室所有的預定數據按照時間先後放到一個個棧內,最新的預定放到上面,這樣下次有人進行預定時,只需要比較是否到最上面那條數據的r_date,來判斷該自習室目前是否可被預定。不修改記錄實現一個覆蓋刪除的功能。

3、對外開放限制多

一個正常的小程式專案一般都會配一個後台管理系統,這個後台管理系統與小程式共用一個資料庫,來管理資料。由於小程式雲開發自帶的雲端資料庫在小程式內部,外部要是想存取這個資料庫則需要一個稍微複雜的流程:

先使用官方介面取得到呼叫憑證,在透過這個憑證使用指定的介面來對資料庫進行增刪改查。另外這個流程中消耗的資源也是算在基礎配置裡的,每日請求上線5萬次。

推薦教學:《小程式開發》《PHP教學

以上是小程式雲端開發和非雲端開發區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn