appweb3內(nèi)核
Appweb3的內(nèi)核使用c語言編寫,而不是像appweb2中使用c++,這樣做增加了對(duì)某些平臺(tái)的可移植性。The ejscript web 框架代替了Embedded Sever Page.
ejs和esp對(duì)比
在appweb中ejs是作為esp的升級(jí)版,esp是一個(gè)小型的javascript的子集;而ejs支持這些功能的同時(shí)還具有更加強(qiáng)大的功能。對(duì)應(yīng)ejs和esp的比較:
1、ejs完全支持ECMAScript-262語言,而不是簡(jiǎn)單的javascript子集。
2、對(duì)應(yīng)VM設(shè)計(jì)具有更高的性能。
3、獨(dú)立的javascript編譯器。
4、高速的預(yù)編譯器。
5、支持MVC框架
6、支持完整的sqlite數(shù)據(jù)庫
7、支持Ajax庫
8、擴(kuò)展類庫
9、網(wǎng)頁模板引擎
10、在appweb里面集成了擴(kuò)展完整的HTTP服務(wù)
11、支持E4X XML解析器
12、更高的性能
13、更小的資源占用
14、對(duì)于大型的javascript應(yīng)用程序更好的支持。
對(duì)于請(qǐng)求與響應(yīng):
在appweb3中定制對(duì)象和屬性,使用一個(gè)http對(duì)象來存儲(chǔ)關(guān)于服務(wù)的信息。
1、Reques對(duì)象存儲(chǔ)關(guān)于請(qǐng)求的信息;
2、Response對(duì)象用來存儲(chǔ)關(guān)于響應(yīng)的信息;
3、對(duì)應(yīng)表單的處理將appweb2的form對(duì)象改名為params對(duì)象;
Eg:
關(guān)于appweb使用ejs
注釋:appweb中包含了ejscript命令行,為了和安裝的ejscript其他版本命令行不沖突,將其進(jìn)行了重命名。傳統(tǒng)的Ejscript命令行以ejs作為前綴。在appweb里面使用ajs作為前綴。Eg:在appweb里面應(yīng)用程序產(chǎn)生器為ajs,而Ejscript里面叫做ejs。
主要的Ejscript框架組成:
Web Server Interface-框架處理程序;
Application Generator-應(yīng)用程序產(chǎn)生器;
Web Page Parser-web頁面解析器;
Framework Class-MVC,Http Request and Ajax view classes
Ejscript compiler- Creates and caches application byte code
Ejscript VirtualMachine - executes the byte code and formats the response;
數(shù)據(jù)接收與處理
網(wǎng)絡(luò)接口在數(shù)據(jù)傳入后,將表單數(shù)據(jù)轉(zhuǎn)換成合適的格式,便于Ejscript應(yīng)用程序處理。傳統(tǒng)上,表單數(shù)據(jù)傳遞到web應(yīng)用程序的環(huán)境變量。這種格式顯得比較笨拙,不能很好的映射到一個(gè)面向?qū)ο蟮恼Z言。Eg:javascript;
Ejscript使用params[]代替了環(huán)境變量采集和透明的將表單數(shù)據(jù)轉(zhuǎn)換成一個(gè)嵌套集合的對(duì)象。
網(wǎng)絡(luò)接口創(chuàng)建請(qǐng)求,響應(yīng)和主機(jī)存儲(chǔ)狀態(tài)等反應(yīng)請(qǐng)求狀態(tài)的對(duì)象。避免了使用虛擬的創(chuàng)建方式,使得應(yīng)用程序訪問請(qǐng)求狀態(tài)時(shí)產(chǎn)生最小的開銷。
解釋器主機(jī):
一個(gè)高性能的web服務(wù)器必須接受傳入的請(qǐng)求,路由到適當(dāng)?shù)恼?qǐng)求處理程序,初始化處理程序,包括必要的解釋,響應(yīng)數(shù)據(jù)的收集傳輸?shù)娇蛻舳?,然后傳入處理程序。這些必須做很多次,理想的是每秒數(shù)百次的動(dòng)態(tài)內(nèi)容。
為了有效的做到這一點(diǎn),Ejscript預(yù)創(chuàng)建一個(gè)主解釋器實(shí)例。當(dāng)傳入的請(qǐng)求到達(dá)時(shí),網(wǎng)路接口快速克隆這個(gè)主解釋實(shí)例,致力于創(chuàng)建一個(gè)輕量級(jí)的副本??寺±孟到y(tǒng)類型和網(wǎng)絡(luò)的主框架,所有需要最小的初始化工作,然后就可以開始提供web請(qǐng)求。
克隆解釋器并非完全隔離。共享控制會(huì)話狀態(tài)通過session[]和application[]對(duì)象。
Model,View,ControllerFramework:模型-視圖-控制器框架;
該模型包括數(shù)據(jù)庫應(yīng)用程序的狀態(tài)管理??刂破鞴芾響?yīng)用程序,響應(yīng)的輸入和效用響應(yīng)的視圖來生成用戶界面。
應(yīng)用程序產(chǎn)生器
Web框架支持兩種ejscript web應(yīng)用。
1、簡(jiǎn)單獨(dú)立的web頁面(這個(gè)就是我們經(jīng)常使用的);
2、ejscript MVC應(yīng)用;
獨(dú)立網(wǎng)頁使用嵌入式Ejscript的代碼,但不使用完整的的模型視圖Controlller范例,也沒有使用應(yīng)用程序生成。他們通常使用“Post-Back”模式的表單數(shù)據(jù)回發(fā)到同一頁上。沒有控制器,模型和視圖布局。
MVC應(yīng)用變得越來越強(qiáng)大,它們擁有數(shù)據(jù)庫模型,控制器,視圖和布局,使用應(yīng)用程序生成器ajsweb就可以開始運(yùn)行。這樣會(huì)創(chuàng)建一個(gè)應(yīng)用程序目錄,并填入必要的目錄,配置文件和申請(qǐng)存根。
步驟:1、ajsweb –v generate app mytestName //mytestName就是我們創(chuàng)建的目錄名稱。
2、ajsweb –v compile
Web Page Parser:網(wǎng)頁解析器
網(wǎng)頁分析器是一個(gè)模板引擎和嵌入的腳本解析器。理解并處理嵌入的javascript和展開視圖內(nèi)容頁的布局命令,并創(chuàng)建一個(gè)符合的表示整個(gè)頁面。
網(wǎng)頁解析器讀取頁面視圖頁面包含的嵌入ejscript代碼(擴(kuò)展名為”*.ejs”)。它融合與布局的頁面的內(nèi)容頁,并將它轉(zhuǎn)換為一個(gè)純粹的ejscript程序(通過.es擴(kuò)展)最終生成一個(gè)用戶開到的頁面。
網(wǎng)頁分析器支持下面的網(wǎng)頁指令。這些可以用在布局或者內(nèi)容頁面:
<%=ejscript %>;該指令將計(jì)算表達(dá)式的值
@@variable;作為<%=%>的一種快捷訪問方式
<%ejscript code%>指令將調(diào)用ejscriptcode。
<% include “filename”%>包含頭文件進(jìn)來
<%@ layout “file”%>指定布局頁面。
關(guān)于模塊的產(chǎn)生
聯(lián)系客服