摘 要: 為了滿足不同用戶瀏覽網(wǎng)頁的特定需求,解決傳統(tǒng)瀏覽器可移植性差、效率較低的問題,設計并實現(xiàn)一種折疊式內(nèi)容可關聯(lián)的瀏覽器。給出折疊式內(nèi)容可關聯(lián)瀏覽器的總體結構,通過網(wǎng)絡模塊獲取用戶所需的網(wǎng)頁資源,利用關聯(lián)規(guī)則挖掘算法對某一特定信息進行進一步的搜索,使用戶得到更多的關聯(lián)信息。通過解析模塊對得到的資源進行解析,將解析的結果發(fā)送至顯示模塊中,顯示模塊利用解析模塊發(fā)送來的顯示對象,調(diào)用GUI,引入柔性折疊算法進行顯示排版,使用戶在較小的屏幕空間中可流暢地瀏覽一些大規(guī)格信息,通過用戶接口模塊響應用戶的遙控操作。仿真實驗結果表明所設計的瀏覽器不僅具有很高的搜索效率,而且所占內(nèi)存較低,能夠很好地滿足用戶的使用需求。
關鍵詞: 折疊式內(nèi)容可關聯(lián)瀏覽器; 網(wǎng)絡模塊; 網(wǎng)頁資源; GUI
中圖分類號: TN915?34; TP929 文獻標識碼: A 文章編號: 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)絡已經(jīng)成為人們工作、生活中不可缺少的一部分[1?2]。在 Internet中,人們需要快速地獲取所需的信息資源,因此,設計一種高效的,可關聯(lián)性強的瀏覽器具有重要意義,已經(jīng)成為相關學者研究的重點課題,受到越來越廣泛的關注[3?5]。
目前,常用的瀏覽器主要有嵌入式瀏覽器、WAP瀏覽器和3G瀏覽器,相關研究也取得了一定的成果,其中,文獻[6]設計了一種3G瀏覽器,在Linux上驅(qū)動了3G(3rd?Generation) 模塊, 利用撥號上網(wǎng)使瀏覽器終端無線上網(wǎng),通過GraphicsView框架與QtWebKit 引擎模塊功能,實現(xiàn)瀏覽器的設計,但該瀏覽器存在效率低的弊端;文獻[7]設計了一種基于分層結構的可移植WAP瀏覽器,根據(jù)嵌入式系統(tǒng)的特點,通過分層對瀏覽器進行設計,并給出WAP瀏覽器的系統(tǒng)結構、分析、布局及顯示,但該瀏覽器響應時間極高,無法滿足用戶的需求。
1 折疊式內(nèi)容可關聯(lián)的瀏覽器設計與實現(xiàn)
1.1 折疊式內(nèi)容可關聯(lián)瀏覽器總體設計
瀏覽器軟件被安裝于計算機系統(tǒng)中,是用戶瀏覽信息的一種主要方式。瀏覽器采用HTTP協(xié)議,向服務器申請獲取資源,對其進行一定的操作后,將結果顯示于設備中。
從模塊分類的角度分析,本文設計的折疊式內(nèi)容可關聯(lián)瀏覽器主要由網(wǎng)絡模塊、解析模塊、顯示模塊及用戶接口模塊構成,如圖1所示為本文設計瀏覽器之間的關系。
1.2 網(wǎng)絡模塊
網(wǎng)絡模塊通過HTTP 協(xié)議在對應的服務器中獲取所需的網(wǎng)頁資源,利用關聯(lián)規(guī)則挖掘算法對某一特定信息進行進一步的搜索,使用戶得到更多的關聯(lián)信息,再通過解析模塊對得到的資源進行解析,詳細結構見圖2。
關聯(lián)規(guī)則挖掘算法是網(wǎng)絡模塊的關鍵,下面進行詳細地分析。
1.3 數(shù)據(jù)解析模塊
網(wǎng)絡模塊通過關聯(lián)規(guī)則挖掘算法得到用戶請求的網(wǎng)絡資源后,即調(diào)用解析模塊,其主要用于對HTML 文本進行解析,將解析的結果發(fā)送至顯示模塊中,該模塊的詳細實現(xiàn)流程見圖3。
1.4 顯示模塊
顯示模塊主要負責通過解析模塊發(fā)送來的顯示對象,調(diào)用GUI,引入柔性折疊算法進行顯示排版,顯示模塊詳細結構見圖4。
曲面柔性折疊算法主要為了使用戶在較小的屏幕空間中可流暢地瀏覽一些大規(guī)格信息,是顯示模塊的關鍵,該算法和現(xiàn)實生活中從上到下懸掛的折疊式打印紙在重力作用下的折疊過程很像,如圖5所示。
分析圖5可以看出,紙中最下面的部分首先被折疊,漸漸向上蔓延,直至最上面的部分被拉直至力學平衡。依據(jù)該過程,本文首先依據(jù)顯示區(qū)域的尺寸及曲面的實際長度獲取所需折疊的數(shù)量;再將曲面下半部分以一定的長度折疊為很多折,使其可以以很小的體積在所顯示視圖中保存下來,用戶可通過折疊的厚度對整個曲面的長度進行確定。
對曲面的柔性折疊過程為:
(1) 根據(jù)實際應用中打印紙的折疊過程和柔性原則,求出可均勻折疊的數(shù)量。
(2) 依據(jù)對應折子對臨時坐標的起始位置進行偏移即可求出各頂點的坐標。其程序代碼如下所示:
function cost()
class CDriveExplorerDoc;
class CLeftView : public CTreeView
{
protected: //create from serialization only
CLeftView(); //提取折疊的開口長度
DECLARE_DYNCREATE(CLeftView)
//Attributes確定折疊的弧長
public:
CDriveExplorerDoc* GetDocument();
CImageList* m_pImageList;
CString m_LocalPath; //確定顯示長度
{
// TODO: Modify the Window class or styles here by modifying the CREATESTRUCT cs
cs.style |= TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES; //確定縱向弧長
return CTreeView::PreCreateWindow(cs);
} //獲取離曲面頂端的弧長
{
CDriveExplorerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); //獲得折疊數(shù)量
//TODO: add draw code for native data here
} //假設曲面狀態(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);
} //獲得頂點的新坐標
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 用戶接口模塊
用戶接口模塊主要用于響應用戶的遙控操作,如果用戶點擊新的頁面,則調(diào)用網(wǎng)絡模塊,如果用戶推出瀏覽器,則結束瀏覽器線程,該模塊的硬件結構見圖6。
2 仿真實驗分析
為了驗證本文設計的折疊式內(nèi)容可關聯(lián)的瀏覽器的有效性,需要進行相關的實驗分析。實現(xiàn)將嵌入式瀏覽器作為對比進行分析。
對本文瀏覽器和嵌入式瀏覽器的速度與占用內(nèi)存大小進行比較,得到的結果見表1。
分析表1可以看出,本文瀏覽器瀏覽網(wǎng)頁的響應速度明顯高于嵌入式瀏覽器,而且本文瀏覽器占用內(nèi)存也少于嵌入式瀏覽器,本文瀏覽器不僅能夠?qū)崿F(xiàn)瀏覽器的基本功能,而且性能較高,驗證了本文瀏覽器的有效性。
為了進一步測試本文瀏覽器的性能,分別采用本文瀏覽器和嵌入式瀏覽器對不同搜索范圍的第一次搜索任務完成時間進行對比,得到的結果見圖7。
分析圖7可以看出,在搜索頁數(shù)較少的情況下,本文瀏覽器和嵌入式瀏覽器的搜索速度相差不大,但隨著瀏覽頁數(shù)的逐漸增加,本文瀏覽器搜索速度與嵌入式瀏覽器搜索速度之間的差距越來越大,進一步驗證了本文瀏覽器的高性能。
在此共邀請了20人參加主觀評定測試,對本文瀏覽器和嵌入式瀏覽器的用戶體驗進行對比。被邀請的20人均有個人電腦瀏覽器使用經(jīng)驗。體驗評級總分為5分,5分為操控簡單,體驗良好;4分為操控難度和體驗均一般;3分為操控稍復雜,勉強可以接受;2分為操控復雜,稍微討厭;1分為操控太麻煩,無法接受。兩種瀏覽器的評分結果見表2。
表2 兩種瀏覽器平均分比較結果
分析表2可以看出,本文瀏覽器每一項功能的平均得分均高于嵌入式瀏覽器,用戶評價較高,具有更好的操控體驗。
3 結 論
本文設計并實現(xiàn)一種折疊式內(nèi)容可關聯(lián)的瀏覽器,給出折疊式內(nèi)容可關聯(lián)瀏覽器的總體結構,通過網(wǎng)絡模塊獲取用戶所需的網(wǎng)頁資源,利用關聯(lián)規(guī)則挖掘算法對某一特定信息進行進一步的搜索,使用戶得到更多的關聯(lián)信息。通過解析模塊對得到的資源進行解析,將解析的結果發(fā)送至顯示模塊中,顯示模塊利用解析模塊發(fā)送來的顯示對象,調(diào)用GUI,引入柔性折疊算法進行顯示排版,使用戶在較小的屏幕空間中可流暢的瀏覽一些大規(guī)格信息。通過用戶接口模塊響應用戶的遙控操作。仿真實驗結果表明,所設計的瀏覽器不僅具有很高的搜索效率,而且所占內(nèi)存較低,能夠很好的滿足用戶的使用需求。
參考文獻
[1] 李世國,靳文奎,孫辛欣.智能手機瀏覽器信息架構設計研究[J].包裝工程,2013,34(6):45?49.
[2] 張明達,莊建勇.一種基于Web瀏覽器的文件共享系統(tǒng)設計與實現(xiàn)[J].無線互聯(lián)科技,2014(11):37.
[3] 曹家慶,肖慧萍.基于安卓平臺的手機圖片瀏覽器的設計[J].信息通信,2014(8):77?78.
[4] 余啟洋,桑楠,郭文生.嵌入式瀏覽器JavaScript引擎的研究與設計[J].計算機應用與軟件,2014(5):251?255.
[5] 馮嘉彬.原型驅(qū)動的設計方法:歐朋瀏覽器8.0的設計分享[J].程序員,2013(7):84?86.
[6] 唐成戩,雷航,郭文生.嵌入式瀏覽器軟硬件混合渲染層的研究與設計[J].計算機應用,2013,33(5):1456?1458.
[7] 崔堯,李建軍,叢芳,等.一種基于瀏覽器/服務器結構的綜合康復信息系統(tǒng)的設計與初步實現(xiàn)[J].中國康復理論與實踐, 2015(1):114?116.