日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

接觸小程序有一段時間了,總得來說小程序開發門檻比較低,但其中基本的運行機制和原理還是要懂的.

了解小程序的由來

在小程序沒有出來之前,最初微信WebView逐漸成為移動web重要入口,微信發布了一整套網頁開發工具包,稱之為 JS-SDK,給所有的 Web 開發者打開了一扇全新的窗戶,讓所有開發者都可以使用到微信的原生能力,去完成一些之前做不到或者難以做到的事情。

但JS-SDK 的模式并沒有解決使用移動網頁遇到的體驗不良的問題,比如受限于設備性能和網絡速度,會出現白屏的可能。因此又設計了一個增強版JS-SDK,也就是“微信 Web 資源離線存儲”,但在復雜的頁面上依然會出現白屏的問題,原因表現在頁面切換的生硬和點擊的遲滯感。這個時候需要一個 JS-SDK 所處理不了的,使用戶體驗更好的一個系統,小程序應運而生。

  • 快速的加載
  • 更強大的能力
  • 原生的體驗
  • 易用且安全的微信數據開放
  • 高效和簡單的開發

小程序與普通網頁開發的區別

小程序的開發同普通的網頁開發相比有很大的相似性,小程序的主要開發語言也是 JAVAScript,但是二者還是有些差別的。

  • 普通網頁開發可以使用各種瀏覽器提供的 DOM API,進行 DOM 操作,小程序的邏輯層和渲染層是分開的,邏輯層運行在 JSCore中,并沒有一個完整瀏覽器對象,因而缺少相關的DOM API和BOMAPI。
  • 普通網頁開發渲染線程和腳本線程是互斥的,這也是為什么長時間的腳本運行可能會導致頁面失去響應,而在小程序中,二者是分開的,分別運行在不同的線程中。
  • 網頁開發者在開發網頁的時候,只需要使用到瀏覽器,并且搭配上一些輔助工具或者編輯器即可。小程序的開發則有所不同,需要經過申請小程序帳號、安裝小程序開發者工具、配置項目等等過程方可完成。

小程序運行機制

小程序啟動會有兩種情況,一種是「冷啟動」,一種是「熱啟動」。假如用戶已經打開過某小程序,然后在一定時間內再次打開該小程序,此時無需重新啟動,只需將后臺狀態的小程序切換到前臺,這個過程就是熱啟動;冷啟動指的是用戶首次打開或小程序被微信主動銷毀后再次打開的情況,此時小程序需要重新加載啟動。

  • 小程序沒有重啟的概念
  • 當小程序進入后臺,客戶端會維持一段時間的運行狀態,超過一定時間后,會被微信主動銷毀

小程序更新機制

小程序冷啟動時如果發現有新版本,將會異步下載新版本的代碼包,并同時用客戶端本地的包進行啟動,即新版本的小程序需要等下一次冷啟動才會應用上。 如果需要馬上應用最新版本,可以使用 wx.getUpdateManager API 進行處理。

小程序安全

作為開發者,無論是前端開發者,還是后端開發者,了解常見的安全問題,以及常見的解決方案是非常必要的。

1.反編譯

非常多原創的微信小程序,被技術人員通過反編譯技術或者工具,將完整的代碼反編譯出來。這項技術自小程序發布初期到現在都一直存在。多數開發者反編譯項目用作學習,但也有不少公司,直接利用反編譯市場上的現有的小程序,快速搭建屬于自己的產品,謀取利益。

對于這樣的問題,微信官方并沒有做出太多反制措施。畢竟小程序模擬的是瀏覽器,一般的前端項目,在瀏覽器端右鍵即可查看源碼,在控制臺可以查看網絡請求等更加詳細的信息。

在小程序代碼中,不要寫入敏感數據,將敏感數據全部放在服務端。客戶端要使用時,通過接口進行請求。反編譯后的代碼都是些前端樣式,這些并沒有太重要。畢竟一般的前端程序員復刻一個小程序項目,也只是時間問題。

2.接口鑒權

開發者很容易通過抓包,第三方工具等方式獲取到小程序的網絡請求。小程序開發者應當在后臺接口被調用時,對本次調用進行權限校驗,包括自建后臺接口和云函數,否則容易發生越權問題和數據泄漏。

對于敏感數據、開發能力相關接口需要在后臺進行鑒權,通常可檢驗openid,IP地址,自定義登錄態等信息。

鑒權的邏輯應該放在后臺進行,不應在小程序中以隱藏頁面、按鈕等方式來代替。

常見的鑒權示例如下:

//自建后臺鑒權
function actionDelete(){
$item_id = $_POST["item_id"];
$openid = $_POST["openid"];
$ip = $_SERVER['REMOTE_ADDR'];
$user_role = $_SESSION["user_role"];
if ($openid === "xxx" &&
$ip === "192.168.0.101" &&
$user_role === "admin") {
// 進行刪除操作
// ...
return 0;
} else {
// 記錄非法請求
// ...
return -1;
}
}
//云函數鑒權
exports.main = async (event, context) => {
const { OPENID, AppID, UNIONID } = cloud.getWXContext();
if (OPENID === "xxx") {
// 進行刪除操作
// ...
} else {
// 記錄非法請求
// ...
}
}

3.代碼管理

當使用 git、 svn 等版本管理工具時,會產生 .git 等目錄。某些編輯器或軟件也會在運行過程中生成臨時文件。若這些目錄或文件被帶到生產環境,則可能發生源碼泄漏。

4.內容安全

對于包含用戶輸入內容,如評論、修改昵稱、頭像等功能。開發者需要自行調用信息過濾接口,判定內容是否有違規內容。對于沒有配置相應功能的小程序,會被警告然后限制搜索。我之前開發過的一款社區類目小程序就因為這個原因,被封禁了好久。

5.敏感數據安全

對于存儲在本地的敏感數據,如用戶信息,openid等數據,開發者應當對敏感數據自行加密存儲。

小程序雙線程架構

什么是雙線程架構?

一條線程負責處理邏輯層一條線程負責處理渲染層。線程之間通過native層通信。

為什么要選擇雙線程架構?

1.最重要的點: 這個一個基于安全于管控的方案

2.其次:比純web更好的交互體驗,

3.原生版本迭代更為便捷 小程序選擇的是webview+原生組件的形式,hybrid方式,既享受到了webview頁面的低門檻和在線更新,

分享到:
標簽:程序
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定