999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Webpy+Apache HTTP Server 微信小程序架構(gòu)搭建研究

2018-01-29 12:35:56陳琦
無線互聯(lián)科技 2017年18期

陳琦

摘要:微信小程序依托擁有巨大用戶群的微信,極有可能成為繼微信公眾號之后又一個亮點,其特點為輕量、用戶友好,文章通過使用微信小程序開發(fā)平臺、Webpy+ApacheHTTPServer,介紹一種開發(fā)微信小程序的輕量級架構(gòu)以及設(shè)計思路,以供開

發(fā)者參考。

關(guān)鍵詞:微信小程序;Webpy;Apache HTTPServer;架構(gòu)搭建

2016年9月2舊,微信小程序正式開啟內(nèi)測。2017年1月9日0點,微信第一批小程序正式上線,用戶可以體驗到各種各樣小程序提供的服務(wù)[1]。2017年第一季度,騰訊公布的微信月活躍賬戶數(shù)達到9.38億,比去年同期增長23%[2]。在一個相對巨大的用戶群體上微信依然保持高速增長,其生命力非同一般。作為一種新興事物,微信小程序依托擁有巨大用戶群的微信,極有可能成為繼微信公眾號之后的又一個亮點。

微信小程序有別于普通APP最顯著的一點是不用下載和安裝,通過搜索或掃碼即可進入小程序,那么這就要求小程序要盡量做到輕量級;微信小程序有別于微信公眾號內(nèi)應(yīng)用的最顯著特點是,小程序更接近于原生APP應(yīng)用,而公眾號應(yīng)用就是網(wǎng)頁Web程序,因此小程序在用戶友好性上更勝一籌。

小程序,顧名思義,相對于一般APP而言體量較小,那么對于開發(fā)者而言一個快速而輕量級的開發(fā)架構(gòu)就成了開發(fā)微信小程序的首選,本文介紹一種快速開發(fā)的架構(gòu)及設(shè)計思路,以供參考。

1架構(gòu)中主要框架的選擇及介紹

在架構(gòu)中,客戶端框架(也稱為前端框架)、服務(wù)器端框架(也稱為后端框架)、以及服務(wù)器中間件的選擇是關(guān)鍵,下面從這3個方面進行相應(yīng)介紹。

1.1微信小程序前端框架

小程序前端開發(fā)框架是騰訊官方提供的小程序開發(fā)框架,要想讓小程序可以在微信上使用,該前端框架為必選項。

該框架提供了自己的視圖層描述標(biāo)簽語言(WeiXmMarkupLanguage)WXML和樣式語言(WeiXmStyleSheets,WXSS)以及基于JavaScript的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),讓開發(fā)者可以方便地聚焦于數(shù)據(jù)與邏輯上[3]。其中WXML是一種類似于Web開發(fā)中HTML的XML語言,用于組織頁面結(jié)構(gòu);WXSS是一種近似于Web開發(fā)中CSS的樣式表用于表述WXML的顯示方式;其邏輯層使用JavaScript語言和Web開發(fā)中一致;其數(shù)據(jù)層可以認(rèn)為集成于邏輯層的JavaSmpt中,每一個程序頁面都有一個Page.data用于存放相關(guān)頁面需要使用的數(shù)據(jù)。在使用過程中可以發(fā)現(xiàn),雖然與Web開發(fā)中一樣都是用JavaScript,但是兩者之間也存在一定差異,例如:在Web開發(fā)中修改頁面上數(shù)據(jù),需要先找到HTML上的對應(yīng)節(jié)點然后修改節(jié)點上的數(shù)據(jù),而小程序中采取的方式是在WXML的節(jié)點上直接使用雙括號綁定Page.data中的數(shù)據(jù)(形如{{some_data}}),修改Page.data中的數(shù)據(jù)時,頁面顯示內(nèi)容實時變換。

1.2月良務(wù)器端開發(fā)框架:Webpy

微信小程序前端框架與后端服務(wù)器交互的協(xié)議主要使用安全超文本傳輸協(xié)議服務(wù)器(HyperTextTransportProtocolServer,HTTPS),而且前后端數(shù)據(jù)傳輸時主要使用JS0N,與Web開發(fā)中類似,那么可以選取的服務(wù)器端框架就有很多。JAVA,PHP,C#,Ruby,Python等很多開發(fā)語言都有相當(dāng)成熟的Web開發(fā)框架,在眾多框架中選擇合適的框架并不簡單,本文選擇Webpy作為后端框架主要基于以下幾點考量。

1.2.1足夠輕量

Webpy是一個非常輕量且功能齊全的PythonWeb框架,最新版本0.38的源文件大小僅為1.1MB,而且Python屬于Linux服務(wù)器原生支持語言,這樣一個框架部署在Linux服務(wù)器上時,對服務(wù)器壓力相對較小。

1.2.2可以很容易地讓頁面模板和后臺服務(wù)器端程序解耦由于微信小程序的前端必須使用騰訊自己本身的框架,那么開發(fā)小程序的服務(wù)器端框架必然要求其模板語言相對獨立,那么類似于PHP,ASP,JSP等技術(shù)就不利于小程序的開發(fā),而Webpy的頁面模板就相對獨立,可以輕松地和服務(wù)器端解耦。

1.2.3夠靈活

由于存在微信自身服務(wù)器和小程序服務(wù)器相互溝通的場景,以及考慮到小程序才剛剛起步,以后出現(xiàn)調(diào)整在所難免,那么一個相對靈活的后端框架,用于應(yīng)付各種不同變化和需求就很必要。在這一點上,Webpy的核心路由表非常容易維護,便于修改,可以適用于各種場景。

1.3服務(wù)器中間件:ApacheHTTPServer

ApacheHTTPServer(簡稱Apache)是Apache軟件基

金會的一個開放源碼的網(wǎng)頁服務(wù)器,可以在大多數(shù)計算機操作系統(tǒng)中運行,由于其多平臺和安全性被廣泛使用,是當(dāng)前世界使用排名第一的Web服務(wù)器軟件。其快速、可靠并且是一個模塊化的服務(wù)器,可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務(wù)器中,可以運行在幾乎所有廣泛使用的計算機平臺上,受到廣泛認(rèn)可[4]。

ApacheHTTPServer作為一款優(yōu)良的Web服務(wù)器,其靈活性、穩(wěn)定性均滿足作為微信小程序后端服務(wù)器的需要,同時只需添加VntualHost(虛擬機)監(jiān)聽443端口,配置SSL相應(yīng)設(shè)置,即可滿足微信小程序使用HTTPS服務(wù)傳輸?shù)男枰T僬撸捎诤蠖丝蚣苓x擇了Webpy,ApacheHTTPServer對于Python語言的友好型,也成了被選擇的原因之一。

2主要技術(shù)難點剖析

2.1服務(wù)器端與客戶端資源分配的設(shè)計思路

對于擁有客戶端和服務(wù)器端的程序來說,到底是重客戶端(業(yè)務(wù)邏輯多在客戶端進行處理)還是重服務(wù)器端(業(yè)務(wù)邏輯多在服務(wù)器端進行處理),都需要提前確定。按照常規(guī)瀏覽器/服務(wù)器(Browser/Server,B/S)架構(gòu)的程序,一般是重服務(wù)器端,而客戶端程序/服務(wù)器(CUent/Server,C/S)架構(gòu)的程序一般是重客戶端或者兩者并重。而目前微信小程序,按照對“小程序”字面的含義,應(yīng)當(dāng)屬于C/S架構(gòu),但其使用的技術(shù),卻大量參照了B/S架構(gòu)Web開發(fā)的內(nèi)容,例如:WXML參照HTML,WXSS參照CSS,JavaScript與Web開發(fā)幾乎一樣用于頁面邏輯層的編寫。經(jīng)過一段時間的研究,本文認(rèn)為微信小程序應(yīng)當(dāng)參照C/S架構(gòu)程序的思路進行編寫,原因如下:endprint

(1)微信小程序區(qū)別于微信公眾號應(yīng)用的最大特點就是其客戶端友好性,如果采取輕客戶端、重服務(wù)端的做法無疑會使小程序的優(yōu)勢被同樣是新近興起的H5開發(fā)所完全取代;

(2)微信小程序運行時以微信APP為依托,而微信在全球眾多用戶的手機上均表現(xiàn)良好,因此可以推斷重客戶端的微信小程序不會對用戶使用的設(shè)備造成過大壓力;

(3)重客戶端的做法可以減少網(wǎng)絡(luò)傳輸?shù)拇螖?shù),讓使用無線網(wǎng)絡(luò)的移動用戶更少感覺到網(wǎng)絡(luò)延時造成的卡頓。

由此本文給出開發(fā)微信小程序時一些建議:

(1)編寫微信小程序時應(yīng)當(dāng)將業(yè)務(wù)邏輯寫在客戶端,服務(wù)器端重點作為存儲數(shù)據(jù)、組織數(shù)據(jù)的數(shù)據(jù)層服務(wù)器;

(2)在進入微信小程序時,應(yīng)當(dāng)在加載時盡可能多地加載服務(wù)器端提供的JSON數(shù)據(jù),以便在后續(xù)操作中無需二次加載,減少網(wǎng)絡(luò)延時對用戶造成的影響;

(3)在小程序操作過程中,僅在用戶完成操作甚至退出小程序時,向服務(wù)器端提交同步數(shù)據(jù),其他情況均在小程序的內(nèi)存中處理數(shù)據(jù),進一步減少小程序操作的響應(yīng)時間。

2.2微信小程序與服務(wù)器間的交互認(rèn)證

在使用微信小程序時,用戶的身份認(rèn)證是一個與其他程序開發(fā)很不同的地方,原因在于這里涉及了微信自己的服務(wù)器與小程序服務(wù)器端的交互。完成微信小程序身份認(rèn)證的方式如下:(1)小程序調(diào)用wx.login()接口獲取微信用戶的code,并將code發(fā)送至小程序服務(wù)器;(2)小程序服務(wù)器將code與小程序唯一標(biāo)示appid以及小程序秘鑰AppSecret發(fā)送給微信服務(wù)器;(3)微信服務(wù)器根據(jù)獲得數(shù)據(jù)將用戶的唯一標(biāo)識opemd發(fā)送給小程序服務(wù)器;(4)微信小程序服務(wù)器根據(jù)openid生成Session會話,并將Session發(fā)送給小程序客戶端,此后小程序的客戶端與服務(wù)器端的交互均以該會話進行。

2.3Webpy與ApacheHTTPServer之間的整合

Webpy與ApacheHTTPServer之間的整合可以通過ApacheHTTPServer的WSGI模塊mod_wsgi進行。

在ApacheHTTPServer的配置文件HTTPd中添加語句:

(1)LoadModulewsgi_modulemodules/mod_wsgi.so#加載wsgi模塊;

(2)WSGIScriptAlias/appname/var/www/Webpy-app/code.py/#為程序入口起別名。

其中code.py文件為Webpy的入口文件。

同時修改Webpy的code.py文件在文件最后添加如下語句即可:

application=Web.application(urls,globals()).wsgifunc()。

3結(jié)語

通過對微信小程序的研究及測試,本文提出了一種可以用于快速開發(fā)微信小程序的架構(gòu),并解決了架構(gòu)中的技術(shù)難點,提供了相關(guān)開發(fā)思路,為想要進行微信小程序開發(fā)的技術(shù)人員提供了一定的參考。

[參考文獻]

[1]百度百科.微信小程序[EB/OL].(2017-07-11)[2017-09-25].HTTPs://baike.baidu.com/item/-

[2]騰訊.騰訊公布2017年第一季度業(yè)績[EB/OL].(2017-05-17)[2017-09-25].HTTPs://www.tencent.com/zh-cn/articles/8003431495014482.pdf.

[3]騰訊.微信公眾平臺-小程序-開發(fā)-框架[EB/OL].(2016-09-21)[2017-09-25].HTTPs://mp.weixin.qq.com/debug八vxadoc/dev/framework/MINA.html.

[4]百度百科.apache(Web服務(wù)器)[EB/OL].(2015-09-16)[2017-09-25].HTTPs://baike.baidu_com/item/apache/6265.endprint

主站蜘蛛池模板: 国产精品福利一区二区久久| 国产经典免费播放视频| 欧美伊人色综合久久天天| 欧美福利在线| 精品无码日韩国产不卡av| 国产色婷婷| 成人在线综合| 永久在线精品免费视频观看| 蜜桃视频一区二区| 亚洲高清资源| 最近最新中文字幕在线第一页| 在线观看精品自拍视频| 国产男人的天堂| 亚洲精品国产首次亮相| 亚洲综合天堂网| 成人在线观看不卡| 国产日产欧美精品| 亚洲天堂成人| 色偷偷综合网| 内射人妻无码色AV天堂| 暴力调教一区二区三区| 2022国产无码在线| 欧美精品一区二区三区中文字幕| 九九热视频精品在线| 国产成人综合久久精品下载| 亚洲精品无码高潮喷水A| 亚洲成人网在线播放| 91麻豆精品国产91久久久久| 四虎永久免费地址| 亚洲精品无码av中文字幕| 特级aaaaaaaaa毛片免费视频| 国产成人综合网在线观看| 全部免费毛片免费播放| 一级一毛片a级毛片| 国产欧美日韩一区二区视频在线| 中文字幕在线观| 99久久亚洲精品影院| 国产人人射| 色婷婷成人网| 青青青国产精品国产精品美女| 狠狠五月天中文字幕| 色综合手机在线| 在线观看视频一区二区| av手机版在线播放| 国产亚洲欧美日韩在线一区| 国产制服丝袜91在线| 99久久精品免费看国产免费软件| 成人在线第一页| 91久久夜色精品国产网站| 国内熟女少妇一线天| 人妻少妇乱子伦精品无码专区毛片| 国产综合欧美| 国产福利不卡视频| 亚洲欧美自拍中文| 国产成人亚洲日韩欧美电影| 精品视频一区二区三区在线播| 欧美自慰一级看片免费| 无码免费试看| 国产原创第一页在线观看| 91在线播放国产| 国产精品亚洲一区二区在线观看| 国产人碰人摸人爱免费视频| 国产成人无码久久久久毛片| 国产女人在线| 乱人伦中文视频在线观看免费| 国产女人在线视频| 四虎永久在线视频| 欧美亚洲一二三区| 国产欧美日韩免费| 国产精品污视频| 国产微拍精品| 最新国产网站| 亚洲天堂免费观看| 91久久偷偷做嫩草影院精品| 国产一区二区人大臿蕉香蕉| 首页亚洲国产丝袜长腿综合| 亚洲综合色区在线播放2019| аv天堂最新中文在线| 亚洲国产理论片在线播放| 天天躁狠狠躁| 四虎影视8848永久精品| 大乳丰满人妻中文字幕日本|