摘 要: 為了滿足不同用戶瀏覽網(wǎng)頁(yè)的特定需求,解決傳統(tǒng)瀏覽器可移植性差、效率較低的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)一種折疊式內(nèi)容可關(guān)聯(lián)的瀏覽器。給出折疊式內(nèi)容可關(guān)聯(lián)瀏覽器的總體結(jié)構(gòu),通過(guò)網(wǎng)絡(luò)模塊獲取用戶所需的網(wǎng)頁(yè)資源,利用關(guān)聯(lián)規(guī)則挖掘算法對(duì)某一特定信息進(jìn)行進(jìn)一步的搜索,使用戶得到更多的關(guān)聯(lián)信息。通過(guò)解析模塊對(duì)得到的資源進(jìn)行解析,將解析的結(jié)果發(fā)送至顯示模塊中,顯示模塊利用解析模塊發(fā)送來(lái)的顯示對(duì)象,調(diào)用GUI,引入柔性折疊算法進(jìn)行顯示排版,使用戶在較小的屏幕空間中可流暢地瀏覽一些大規(guī)格信息,通過(guò)用戶接口模塊響應(yīng)用戶的遙控操作。仿真實(shí)驗(yàn)結(jié)果表明所設(shè)計(jì)的瀏覽器不僅具有很高的搜索效率,而且所占內(nèi)存較低,能夠很好地滿足用戶的使用需求。
關(guān)鍵詞: 折疊式內(nèi)容可關(guān)聯(lián)瀏覽器; 網(wǎng)絡(luò)模塊; 網(wǎng)頁(yè)資源; GUI
中圖分類號(hào): TN915?34; TP929 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)10?0069?04
Design and implementation of folding content?associated browser
YAN Fei
(Tianhua College, Shanhai Normal University, Shanghai 201815, China)
Abstract: in order to meet the specific needs of different users to browse the web page, solve poor portability and low efficiency of traditional browser, a collapsible content?associated browser was designed and realized. The general structure of the folding content?associated browser is given in this paper. Web resources are obtained through network module. According to user′s requirements, and with the association rule mining algorithm, users can get more related information by further search of particular information. The resources is parsed by parsing module. The parsing results are sent to the display module. The display module utilizes display object sent by the parsing module to call GUI and introduce the flexible folding algorithm to display layout, which can make the users browse mass information fluently in smaller screen space. The remote control operation of users is responded through a user interface module. The simulation experimental results show that the designed browser not only has the very high search efficiency, but also occupies low memory. Therefore, it can well meet the application demand of the users.
Keywords: folding content?associated browser; network module; web page resource; GUI
0 引 言
隨著Internet的迅猛發(fā)展,網(wǎng)絡(luò)已經(jīng)成為人們工作、生活中不可缺少的一部分[1?2]。在 Internet中,人們需要快速地獲取所需的信息資源,因此,設(shè)計(jì)一種高效的,可關(guān)聯(lián)性強(qiáng)的瀏覽器具有重要意義,已經(jīng)成為相關(guān)學(xué)者研究的重點(diǎn)課題,受到越來(lái)越廣泛的關(guān)注[3?5]。
目前,常用的瀏覽器主要有嵌入式瀏覽器、WAP瀏覽器和3G瀏覽器,相關(guān)研究也取得了一定的成果,其中,文獻(xiàn)[6]設(shè)計(jì)了一種3G瀏覽器,在Linux上驅(qū)動(dòng)了3G(3rd?Generation) 模塊, 利用撥號(hào)上網(wǎng)使瀏覽器終端無(wú)線上網(wǎng),通過(guò)GraphicsView框架與QtWebKit 引擎模塊功能,實(shí)現(xiàn)瀏覽器的設(shè)計(jì),但該瀏覽器存在效率低的弊端;文獻(xiàn)[7]設(shè)計(jì)了一種基于分層結(jié)構(gòu)的可移植WAP瀏覽器,根據(jù)嵌入式系統(tǒng)的特點(diǎn),通過(guò)分層對(duì)瀏覽器進(jìn)行設(shè)計(jì),并給出WAP瀏覽器的系統(tǒng)結(jié)構(gòu)、分析、布局及顯示,但該瀏覽器響應(yīng)時(shí)間極高,無(wú)法滿足用戶的需求。
1 折疊式內(nèi)容可關(guān)聯(lián)的瀏覽器設(shè)計(jì)與實(shí)現(xiàn)
1.1 折疊式內(nèi)容可關(guān)聯(lián)瀏覽器總體設(shè)計(jì)
瀏覽器軟件被安裝于計(jì)算機(jī)系統(tǒng)中,是用戶瀏覽信息的一種主要方式。瀏覽器采用HTTP協(xié)議,向服務(wù)器申請(qǐng)獲取資源,對(duì)其進(jìn)行一定的操作后,將結(jié)果顯示于設(shè)備中。
從模塊分類的角度分析,本文設(shè)計(jì)的折疊式內(nèi)容可關(guān)聯(lián)瀏覽器主要由網(wǎng)絡(luò)模塊、解析模塊、顯示模塊及用戶接口模塊構(gòu)成,如圖1所示為本文設(shè)計(jì)瀏覽器之間的關(guān)系。
1.2 網(wǎng)絡(luò)模塊
網(wǎng)絡(luò)模塊通過(guò)HTTP 協(xié)議在對(duì)應(yīng)的服務(wù)器中獲取所需的網(wǎng)頁(yè)資源,利用關(guān)聯(lián)規(guī)則挖掘算法對(duì)某一特定信息進(jìn)行進(jìn)一步的搜索,使用戶得到更多的關(guān)聯(lián)信息,再通過(guò)解析模塊對(duì)得到的資源進(jìn)行解析,詳細(xì)結(jié)構(gòu)見(jiàn)圖2。
關(guān)聯(lián)規(guī)則挖掘算法是網(wǎng)絡(luò)模塊的關(guān)鍵,下面進(jìn)行詳細(xì)地分析。
1.3 數(shù)據(jù)解析模塊
網(wǎng)絡(luò)模塊通過(guò)關(guān)聯(lián)規(guī)則挖掘算法得到用戶請(qǐng)求的網(wǎng)絡(luò)資源后,即調(diào)用解析模塊,其主要用于對(duì)HTML 文本進(jìn)行解析,將解析的結(jié)果發(fā)送至顯示模塊中,該模塊的詳細(xì)實(shí)現(xiàn)流程見(jiàn)圖3。
1.4 顯示模塊
顯示模塊主要負(fù)責(zé)通過(guò)解析模塊發(fā)送來(lái)的顯示對(duì)象,調(diào)用GUI,引入柔性折疊算法進(jìn)行顯示排版,顯示模塊詳細(xì)結(jié)構(gòu)見(jiàn)圖4。
曲面柔性折疊算法主要為了使用戶在較小的屏幕空間中可流暢地瀏覽一些大規(guī)格信息,是顯示模塊的關(guān)鍵,該算法和現(xiàn)實(shí)生活中從上到下懸掛的折疊式打印紙?jiān)谥亓ψ饔孟碌恼郫B過(guò)程很像,如圖5所示。
分析圖5可以看出,紙中最下面的部分首先被折疊,漸漸向上蔓延,直至最上面的部分被拉直至力學(xué)平衡。依據(jù)該過(guò)程,本文首先依據(jù)顯示區(qū)域的尺寸及曲面的實(shí)際長(zhǎng)度獲取所需折疊的數(shù)量;再將曲面下半部分以一定的長(zhǎng)度折疊為很多折,使其可以以很小的體積在所顯示視圖中保存下來(lái),用戶可通過(guò)折疊的厚度對(duì)整個(gè)曲面的長(zhǎng)度進(jìn)行確定。
對(duì)曲面的柔性折疊過(guò)程為:
(1) 根據(jù)實(shí)際應(yīng)用中打印紙的折疊過(guò)程和柔性原則,求出可均勻折疊的數(shù)量。
(2) 依據(jù)對(duì)應(yīng)折子對(duì)臨時(shí)坐標(biāo)的起始位置進(jìn)行偏移即可求出各頂點(diǎn)的坐標(biāo)。其程序代碼如下所示:
function cost()
class CDriveExplorerDoc;
class CLeftView : public CTreeView
{
protected: //create from serialization only
CLeftView(); //提取折疊的開(kāi)口長(zhǎng)度
DECLARE_DYNCREATE(CLeftView)
//Attributes確定折疊的弧長(zhǎng)
public:
CDriveExplorerDoc* GetDocument();
CImageList* m_pImageList;
CString m_LocalPath; //確定顯示長(zhǎng)度
{
// TODO: Modify the Window class or styles here by modifying the CREATESTRUCT cs
cs.style |= TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES; //確定縱向弧長(zhǎng)
return CTreeView::PreCreateWindow(cs);
} //獲取離曲面頂端的弧長(zhǎng)
{
CDriveExplorerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); //獲得折疊數(shù)量
//TODO: add draw code for native data here
} //假設(shè)曲面狀態(tài)
if(strPathName != MYCOMPUTER)
{
DeleteChildren (hItem);
if (!AddDirectoryNodes (hItem, strPathName))
*pResult = TRUE;
} //確定彎曲狀態(tài)
{
GetListCtrl().SetColumnWidth(0, cx / 2);
GetListCtrl().SetColumnWidth(1, cx / 4);
GetListCtrl().SetColumnWidth(2, cx / 4);
} //獲得頂點(diǎn)的新坐標(biāo)
case ID_VIEW_AS_DETAILS:
dwStyle = LVS_REPORT;
break; //確定折疊的狀態(tài)
case ID_VIEW_AS_SMALLICONS:
dwStyle = LVS_SMALLICON;
break; //獲取柔性彎曲參數(shù)
case ID_VIEW_AS_LARGEICONS: fitness(i,1)=
fitness(i,1)/(10^8);
fitness(i,1)=1/fitness(i,1); //確定輸出
end
%fitness
end
1.5 用戶接口模塊
用戶接口模塊主要用于響應(yīng)用戶的遙控操作,如果用戶點(diǎn)擊新的頁(yè)面,則調(diào)用網(wǎng)絡(luò)模塊,如果用戶推出瀏覽器,則結(jié)束瀏覽器線程,該模塊的硬件結(jié)構(gòu)見(jiàn)圖6。
2 仿真實(shí)驗(yàn)分析
為了驗(yàn)證本文設(shè)計(jì)的折疊式內(nèi)容可關(guān)聯(lián)的瀏覽器的有效性,需要進(jìn)行相關(guān)的實(shí)驗(yàn)分析。實(shí)現(xiàn)將嵌入式瀏覽器作為對(duì)比進(jìn)行分析。
對(duì)本文瀏覽器和嵌入式瀏覽器的速度與占用內(nèi)存大小進(jìn)行比較,得到的結(jié)果見(jiàn)表1。
分析表1可以看出,本文瀏覽器瀏覽網(wǎng)頁(yè)的響應(yīng)速度明顯高于嵌入式瀏覽器,而且本文瀏覽器占用內(nèi)存也少于嵌入式瀏覽器,本文瀏覽器不僅能夠?qū)崿F(xiàn)瀏覽器的基本功能,而且性能較高,驗(yàn)證了本文瀏覽器的有效性。
為了進(jìn)一步測(cè)試本文瀏覽器的性能,分別采用本文瀏覽器和嵌入式瀏覽器對(duì)不同搜索范圍的第一次搜索任務(wù)完成時(shí)間進(jìn)行對(duì)比,得到的結(jié)果見(jiàn)圖7。
分析圖7可以看出,在搜索頁(yè)數(shù)較少的情況下,本文瀏覽器和嵌入式瀏覽器的搜索速度相差不大,但隨著瀏覽頁(yè)數(shù)的逐漸增加,本文瀏覽器搜索速度與嵌入式瀏覽器搜索速度之間的差距越來(lái)越大,進(jìn)一步驗(yàn)證了本文瀏覽器的高性能。
在此共邀請(qǐng)了20人參加主觀評(píng)定測(cè)試,對(duì)本文瀏覽器和嵌入式瀏覽器的用戶體驗(yàn)進(jìn)行對(duì)比。被邀請(qǐng)的20人均有個(gè)人電腦瀏覽器使用經(jīng)驗(yàn)。體驗(yàn)評(píng)級(jí)總分為5分,5分為操控簡(jiǎn)單,體驗(yàn)良好;4分為操控難度和體驗(yàn)均一般;3分為操控稍復(fù)雜,勉強(qiáng)可以接受;2分為操控復(fù)雜,稍微討厭;1分為操控太麻煩,無(wú)法接受。兩種瀏覽器的評(píng)分結(jié)果見(jiàn)表2。
表2 兩種瀏覽器平均分比較結(jié)果
分析表2可以看出,本文瀏覽器每一項(xiàng)功能的平均得分均高于嵌入式瀏覽器,用戶評(píng)價(jià)較高,具有更好的操控體驗(yàn)。
3 結(jié) 論
本文設(shè)計(jì)并實(shí)現(xiàn)一種折疊式內(nèi)容可關(guān)聯(lián)的瀏覽器,給出折疊式內(nèi)容可關(guān)聯(lián)瀏覽器的總體結(jié)構(gòu),通過(guò)網(wǎng)絡(luò)模塊獲取用戶所需的網(wǎng)頁(yè)資源,利用關(guān)聯(lián)規(guī)則挖掘算法對(duì)某一特定信息進(jìn)行進(jìn)一步的搜索,使用戶得到更多的關(guān)聯(lián)信息。通過(guò)解析模塊對(duì)得到的資源進(jìn)行解析,將解析的結(jié)果發(fā)送至顯示模塊中,顯示模塊利用解析模塊發(fā)送來(lái)的顯示對(duì)象,調(diào)用GUI,引入柔性折疊算法進(jìn)行顯示排版,使用戶在較小的屏幕空間中可流暢的瀏覽一些大規(guī)格信息。通過(guò)用戶接口模塊響應(yīng)用戶的遙控操作。仿真實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)的瀏覽器不僅具有很高的搜索效率,而且所占內(nèi)存較低,能夠很好的滿足用戶的使用需求。
參考文獻(xiàn)
[1] 李世國(guó),靳文奎,孫辛欣.智能手機(jī)瀏覽器信息架構(gòu)設(shè)計(jì)研究[J].包裝工程,2013,34(6):45?49.
[2] 張明達(dá),莊建勇.一種基于Web瀏覽器的文件共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線互聯(lián)科技,2014(11):37.
[3] 曹家慶,肖慧萍.基于安卓平臺(tái)的手機(jī)圖片瀏覽器的設(shè)計(jì)[J].信息通信,2014(8):77?78.
[4] 余啟洋,桑楠,郭文生.嵌入式瀏覽器JavaScript引擎的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2014(5):251?255.
[5] 馮嘉彬.原型驅(qū)動(dòng)的設(shè)計(jì)方法:歐朋瀏覽器8.0的設(shè)計(jì)分享[J].程序員,2013(7):84?86.
[6] 唐成戩,雷航,郭文生.嵌入式瀏覽器軟硬件混合渲染層的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2013,33(5):1456?1458.
[7] 崔堯,李建軍,叢芳,等.一種基于瀏覽器/服務(wù)器結(jié)構(gòu)的綜合康復(fù)信息系統(tǒng)的設(shè)計(jì)與初步實(shí)現(xiàn)[J].中國(guó)康復(fù)理論與實(shí)踐, 2015(1):114?116.