一種實(shí)用的嵌入式Web服務(wù)器設計
通過(guò)以上過(guò)程的處理,即可實(shí)現對訪(fǎng)問(wèn)權限的控制與管理。
2.3 頁(yè)面文檔管理及生成的功能實(shí)現
由于配置環(huán)境的需要,設計頁(yè)面較多,如果將所有頁(yè)面均存儲在Flash上,文件讀寫(xiě)的問(wèn)題將更為突出。為此,本文設計了一個(gè)如圖5所示的網(wǎng)頁(yè)頁(yè)面文件管理結構來(lái)對頁(yè)面文件進(jìn)行管理。
下面介紹具體處理過(guò)程。
首先,對所有頁(yè)面無(wú)論是靜態(tài)還是動(dòng)態(tài)頁(yè)面,均建立一個(gè)對應的模板文件,并將該模板文件的內容以全局靜態(tài)字符串的形式直接寫(xiě)在程序中。在系統初始化時(shí)對各模板內容的大小進(jìn)行統計,并按下式對各文件的最大容量進(jìn)行粗略的估算:
mS=sizeof(pT)×1.2
其中:mS為估算的頁(yè)面內容最大尺寸,sizeof(pT)則為該頁(yè)面對應模板的實(shí)際大小(以上兩者均以字節為單位)。
按上式估算出頁(yè)面的最大尺寸后,為保證對頁(yè)面分配內存時(shí)空間的連續性,根據所有頁(yè)面的最大尺寸和,一次性分配一個(gè)較大的內存空間,并將該空間按各個(gè)頁(yè)面所對應的最大尺寸依次與該頁(yè)面對應的管理結構內的文件內容指針相關(guān)聯(lián)。這樣,每次因配置的修改導致頁(yè)面內容發(fā)生變化時(shí),僅需對該指針所指向的空間內容進(jìn)行修改即可,而僅在保存配置數據時(shí),通過(guò)配置文件更新函數將其存儲在Flash中。這樣既避免了為修改頁(yè)面文件內容而申請內存的操作,又避免了為存儲頁(yè)面內容而頻繁進(jìn)行的Flash讀寫(xiě)操作,從而提高了該EWS的效率。
評論