freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

visualc瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-12-10 02:46本頁(yè)面
  

【正文】 此菜單可處理收藏夾響應(yīng),即當(dāng)選中 菜單項(xiàng)時(shí),可以鏈接 28 到菜單顯示的頁(yè)面。 為了讓用戶(hù)瀏覽網(wǎng)頁(yè)時(shí)更方便,本程序?qū)崿F(xiàn)了我的收藏夾菜單。 生成我的收藏夾 從注冊(cè)表中讀出“我的收藏夾”文件夾所在的位置,從中找到 .URL 后綴的文件,將文件名讀出,依據(jù)文件名自動(dòng)生成菜單。 下面給出“ 查看網(wǎng)頁(yè)源文件”函數(shù)流程圖: 圖 查看網(wǎng)頁(yè)源文件函數(shù)流程圖 添加“刪除歷史記錄”菜單選 項(xiàng) 此功能可以刪除地址欄紀(jì)錄的所有網(wǎng)址,即把地址欄清空。 首先,從地址欄獲取輸入的網(wǎng)址信息 (域名 );由于 Inter 網(wǎng)絡(luò)應(yīng)用是基于客戶(hù)機(jī) /服務(wù)器體系結(jié)構(gòu)的,故而我們接著要建立一個(gè) Inter 會(huì)話(huà);然后利用輸入的域名獲取此域名指向的 HTML 文件,讀文件,將讀到的信息( HTML 源代碼)保存在一個(gè)字符串里。 當(dāng)用戶(hù)連接到一個(gè)網(wǎng)頁(yè)上時(shí),可以點(diǎn)擊“查看”菜單里的“網(wǎng)頁(yè)源文件”選項(xiàng)來(lái)查看打開(kāi)的網(wǎng)頁(yè)的 HTML 源文件。即把工具欄圖標(biāo)的 ID 設(shè)為和菜單項(xiàng)相同即可,在此不再詳述。主要的是將這些成員函數(shù)正確地映射到菜 單項(xiàng)。 此菜單具有回到前一個(gè)頁(yè)面、到下一個(gè)頁(yè)面、刷新、回到主頁(yè)等功能。然后,在該函數(shù)中我們調(diào)用一個(gè) CMainFrame 類(lèi)函數(shù),從而實(shí)現(xiàn)對(duì)編輯框的設(shè)置。當(dāng)應(yīng)用程序打開(kāi)一個(gè)超級(jí)鏈接時(shí),也會(huì)刷新地址欄,我們就可以在OnDocumentComplete()函數(shù)中完成對(duì)地址欄的刷新。 ③、地址條的刷新:如前所述, OnDocumentComplete()函數(shù)中的 lpszURL 和發(fā)生導(dǎo)航的 URL,是完整有效的 URL 形式,可能不同于 Navigate2 方法中設(shè)定的 UR(它可以 是 簡(jiǎn)略的 URL)。當(dāng)點(diǎn)下“轉(zhuǎn)到”按鈕時(shí),應(yīng)用程序還會(huì)判斷地址欄是否保存有此次輸入的網(wǎng)址,如果保存了就不進(jìn)行進(jìn)一步的操作,如沒(méi)保存此次輸入的網(wǎng)址,則會(huì)將輸入的網(wǎng)址保存起來(lái),然后加入地址欄。打開(kāi)瀏覽器應(yīng)用程序時(shí),會(huì)從注冊(cè)表中讀出記錄的網(wǎng)址信息,將讀到的網(wǎng)址信息在網(wǎng)址欄顯示出來(lái)。 ①、地址欄的初始化:地址欄初始化時(shí)需要從注冊(cè)表中讀取保存在其中的網(wǎng)址信息。然后,加一個(gè)“轉(zhuǎn)到”按鈕,當(dāng)用戶(hù)輸入完網(wǎng)址,點(diǎn)此按鈕后,程序會(huì)根據(jù)用戶(hù)輸入的 URL 地址自動(dòng)轉(zhuǎn)到要打開(kāi)的頁(yè)面。 地址欄的生成與處理 利用控件創(chuàng)建一個(gè) ComBoxBox,作為用戶(hù)輸入網(wǎng)址的工具。為了降低接口復(fù)雜性, 本設(shè)計(jì)中 使用了面向?qū)ο蟮某绦蚍治雠c設(shè)計(jì)方法。 頁(yè)面顯示模塊與人機(jī)交互模塊間的接口 WEB 頁(yè)面顯示模塊與人機(jī)交互模塊的接口也具有單向性,當(dāng)用戶(hù)改變窗口大小(特別是瀏覽器窗口的寬度)時(shí), WEB 頁(yè)面顯示模塊須重新計(jì)算 WEB 頁(yè)面中數(shù) 據(jù)對(duì)象的顯示位置;當(dāng)用戶(hù)點(diǎn)擊超鏈后 ,WEB 頁(yè)面顯示模塊要改變被點(diǎn)擊文本的顏色,重新顯示;用戶(hù)在 WEB 頁(yè)面中輸入信息時(shí), WEB 頁(yè)面顯示模塊必須正確回顯輸入信息。 數(shù)據(jù)通信模塊與人機(jī)交互 模塊間的接口 瀏覽器工作期間,人機(jī)交互模塊控制數(shù)據(jù)通信模塊的工作進(jìn)程。 數(shù)據(jù)通信模塊與 WEB頁(yè)面顯示模塊間的接口 本接口具有單向性,即只有數(shù)據(jù)通信模塊向 WEB 頁(yè)面顯示模塊發(fā)消息。 HTML 語(yǔ)言解釋模塊在該消息驅(qū)動(dòng)下,先訪(fǎng)問(wèn)全局變量,然后解釋 HTML 文件。以下介紹 瀏覽器體系結(jié)構(gòu)中模塊間的 5個(gè)接口。 人 機(jī)交互模塊功能 人機(jī)交互模塊的功 能是:接收用戶(hù)的輸入消息(鍵盤(pán)消息、鼠標(biāo)消息等);正確處理消息,完成數(shù)據(jù)交互功能;獲得服務(wù)器網(wǎng)址,控制數(shù)據(jù)通信模塊通信;將程序內(nèi)部的出錯(cuò)信息以友好的形式提交給用戶(hù) 。 HTML語(yǔ) Y言解 釋模塊根據(jù) HTML文本, 還原 WEB頁(yè)面編輯者的設(shè)計(jì)意圖,其具體功能是:對(duì) HTML文本進(jìn)行詞法分析,將標(biāo)記、標(biāo)記的屬性、屬性值、數(shù)據(jù)內(nèi)容分離;語(yǔ)法分析,確定各個(gè)標(biāo)記的作用對(duì)象和作用范圍;語(yǔ)義分析,將數(shù) 25 據(jù)內(nèi)容轉(zhuǎn)變成內(nèi)存中的數(shù)據(jù)對(duì)象實(shí)例,形成顯示數(shù)據(jù)緩沖隊(duì)列。 瀏覽器 中的四大功能模塊通過(guò)全局變量實(shí)現(xiàn)模塊間的數(shù)據(jù)共享 ,其體系結(jié)構(gòu)圖如下: 圖 瀏覽器軟件體系結(jié)構(gòu)圖 模塊功能描述 數(shù)據(jù)通信模塊功能 數(shù)據(jù)通信模塊是瀏覽器體系結(jié)構(gòu)中的基礎(chǔ)模塊,它的主要功 能是: HTTP連接,取回用戶(hù)指定的文件( GET操作),或向目標(biāo)服務(wù)器發(fā)送用戶(hù)指定的數(shù)據(jù)( POST 操作); HTML文件存放到內(nèi)存中,并將數(shù)據(jù)塊首地址和文件長(zhǎng)度傳遞給 HTML 語(yǔ)言解釋模塊; 、聲音、影像、 Java二進(jìn)制代碼等資源文件,并將取得資源保存在臨時(shí)目錄中,然后向 WEB頁(yè)面顯示模塊發(fā)消息。功能模塊劃分的合理性、接口的清晰性和體系結(jié)構(gòu)的可擴(kuò)展性是瀏覽器設(shè)計(jì)的關(guān)鍵。 如前幾章所述,本課題將用 Visual C++ 開(kāi)發(fā)一個(gè)HTML 瀏覽器軟件,下面從系統(tǒng)分析的角度來(lái)討論軟件體系結(jié)構(gòu)。 例如: ~~~~~~~~~ ~~~~~~~~~ ~~~~~~ ~~~~~~~~~~~~~~~~~~ Host ScriptName PathInfo Query 24 第 4 章 瀏覽器系統(tǒng)設(shè)計(jì) 與實(shí)現(xiàn) 瀏覽器 軟件體系結(jié)構(gòu) HTML 瀏覽器把純文本的 HTML 文件轉(zhuǎn)變成圖文混排、可理解性強(qiáng)的 WEB 頁(yè)面,極大地推動(dòng)了因特網(wǎng)的普及和發(fā)展。 禁止瀏覽器彈出的廣告窗口 禁止瀏覽器彈出廣告窗口的設(shè)計(jì),可以阻止瀏覽網(wǎng)頁(yè)過(guò)程中的一些廣告。 將應(yīng)用程序加入到瀏覽器工具 欄 許多網(wǎng)絡(luò)程序都喜歡把快捷方式鏈接在瀏覽器的工具欄上。 收藏夾功能 在我們用瀏覽器進(jìn)行網(wǎng)頁(yè)瀏覽的時(shí)候,會(huì)遇到自己需要的值得收藏的網(wǎng)頁(yè),這個(gè)時(shí)候 22 我們可以通過(guò)瀏覽器上的收藏夾功能來(lái)把網(wǎng)頁(yè)保存起來(lái),等在下一次我們需要的時(shí)候,可以調(diào)出來(lái)瀏覽。 查看網(wǎng)頁(yè)源文件 此項(xiàng)功能可以實(shí) 現(xiàn)查看網(wǎng)頁(yè)源文件 . 刪除歷史記錄 在瀏覽器的設(shè)計(jì)與開(kāi)發(fā)中,刪除歷史記錄同樣是很重要的一項(xiàng)。當(dāng)我們由于網(wǎng)速或者打開(kāi)網(wǎng)頁(yè)失敗時(shí),我們就用刷新鍵來(lái)重新打開(kāi)此網(wǎng)頁(yè)。 主頁(yè)功能 當(dāng)我們?cè)跒g覽網(wǎng)頁(yè)的時(shí)候,突然想轉(zhuǎn)回到主頁(yè)上,這時(shí)我們可以點(diǎn)擊表示主頁(yè)的功能鍵,返回到主頁(yè)。 刪除功能 在瀏覽器的設(shè)計(jì)與開(kāi)發(fā)中,刪除也同樣是一項(xiàng)常用的功能。當(dāng)需要查看前一個(gè)瀏覽過(guò)的網(wǎng)頁(yè)時(shí),可以通過(guò)此功能,查看瀏覽過(guò)的前一個(gè)網(wǎng)頁(yè)。 當(dāng)用戶(hù)點(diǎn)擊后退按鈕時(shí),顯示上一個(gè)頁(yè)面,并在 URL 框中顯示當(dāng)前網(wǎng)頁(yè)地址。 前進(jìn)功能 在瀏覽器的設(shè)計(jì)與開(kāi)發(fā)中,前進(jìn)是常用的一項(xiàng)功能。 需求分析 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,人們生活中的日常事務(wù)也逐步跟計(jì)算機(jī)、互聯(lián)網(wǎng)關(guān)聯(lián)起來(lái),伴隨著這一現(xiàn)象而起來(lái)的也是軟件行業(yè)的日益繁榮,使得人們現(xiàn)在的工作日益輕松,日益快捷,日益方便,瀏覽器在互聯(lián)網(wǎng)的使用中占有舉足輕重的地位。 21 綜上所述,使用 MFC 的 CHtmlView 類(lèi)編程的方法是比較理想的選擇。這樣的應(yīng)用程 序?qū)崿F(xiàn)起來(lái)很復(fù)雜,事實(shí)上,也沒(méi)有這樣實(shí)現(xiàn)的必要??梢钥紤] 為每種資源寫(xiě)一個(gè)類(lèi),例如 CHtml, Cgif, CJpg??每個(gè)類(lèi)都有一個(gè)方法,就是 顯示自身,每個(gè)類(lèi)有自己的線(xiàn)程負(fù)責(zé)下載。利用 SOCKET編程需要對(duì)低層的協(xié)議理解得非常透徹,對(duì) HTTP 協(xié)議的傳輸機(jī)制非常清楚。這種方法不失為一種比較好的方案。程序員可以不必過(guò)多的被復(fù)雜的底層協(xié)議的東西所 困擾,專(zhuān)心處理 Web 層面上的東西,諸如如何和用戶(hù)交互。 CHtmlView 內(nèi)部封裝了 Web 瀏覽器控件,為應(yīng)用程序提供在 Web 或 HTML 頁(yè)上的視圖,開(kāi)發(fā)者不需要對(duì)低層協(xié)議進(jìn)行太多的操作就可以使應(yīng)用程序?qū)崿F(xiàn)基本的網(wǎng)頁(yè)瀏覽的操作操作,但僅限于基本的瀏覽功能。 下面逐一論證上述所提方案: ( 1)、第一種方法是使用 ActiveX 控件, MFC 可以利用“ Microsoft Web 瀏覽器”控件直接操作,基本上不涉及到 HTTP 協(xié)議的內(nèi)容,實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,但用到的是完全別人的東西,故而不是太好。 利用 MFC 的 CHTMLView 類(lèi)編程。一種好的開(kāi)發(fā)方案有助于減少程序員的工作量、縮短開(kāi)發(fā)周期,更重要的是可以開(kāi)發(fā)出運(yùn)行效率更高、可移植行更好健壯性更強(qiáng)的代碼。 WebBrower 控件支持超級(jí)鏈接,URL(統(tǒng)一資源定位符)導(dǎo)航器,并維護(hù)一張歷史列表。 CHtmlView 類(lèi)在文件 /視圖結(jié)構(gòu)的上下文中提供 WebBrower 控件的功能。同時(shí),為了增強(qiáng)其靈活性,在這個(gè)控件中還增加了執(zhí)行腳本語(yǔ)言和包含其他ActiveX 控件的能力,從而使催該控 件進(jìn)行擴(kuò)展以實(shí)現(xiàn)其他功能。 瀏覽器 實(shí)現(xiàn)技術(shù) 傳統(tǒng)的 WEB 瀏覽器都是獨(dú)立的應(yīng)用程序,這些程序?qū)Λ@得的 HTML 語(yǔ)言或者是其 他語(yǔ)言進(jìn)行解釋?zhuān)⒆詈蟮奈淖?,圖片和聲音顯示出來(lái)。 19 ④ content_length(長(zhǎng)度值 ):它指示 HTTP 體信息的長(zhǎng)度(字節(jié))。 ③ content_type:類(lèi)型 :這個(gè)頭信息非常重要,它指示 HTTP 體信息的 MIME 類(lèi)型。代碼“ 200 OK”表示請(qǐng)求完成。 為了告知 Web 瀏覽器傳送內(nèi)容的類(lèi)型, Web 服務(wù)器首先傳送一些 HTTP 頭信息,然后傳送具體內(nèi)容(即 HTTP 體信息), HTTP 頭信息和 HTTP 體信息之間用一個(gè)空行分開(kāi)。主機(jī)名為 的 Web服務(wù)器從它的文檔空間 中搜索子目錄 mydir 的文件 。 Web 服務(wù)器接到后,進(jìn)行事務(wù)處理,處理結(jié)果又通過(guò) HTTP 傳回給 Web 瀏覽器,從而在 Web 瀏覽器上顯示出所請(qǐng)求的頁(yè)面。 GET 命令的格式為: GET 路徑 /文件名 HTTP/,其中, 文件名指出所訪(fǎng)問(wèn)的文件, HTTP/ 指出 Web 瀏覽器使用的 HTTP 版本。 : Web 瀏覽器通過(guò) socket 向 Web 服務(wù)器提交請(qǐng)求。 瀏覽器工作原理 WWW 的工作基于客戶(hù)機(jī) /服務(wù)器計(jì)算模型, 由 Web 瀏覽器 (客戶(hù)機(jī) )和 Web 服務(wù)器 (服務(wù)器 )構(gòu)成,兩者之間采用超文本傳送協(xié)議( HTTP)進(jìn)行通信,其過(guò)程包括四個(gè)步驟:連接,請(qǐng)求,應(yīng)答,關(guān)閉。 ●在目的主機(jī),傳輸層去掉 TCP 報(bào)頭,將排好順序的分組組成應(yīng)用數(shù)據(jù)流送給應(yīng)用程序。 ●傳輸層檢查順序號(hào),判斷是否是正確的 TCP 分組,然后檢查 TCP 報(bào)頭數(shù)據(jù)。 ●在目的主機(jī),鏈路層將 MAC 幀的幀頭去掉,并將 IP 數(shù)據(jù)包送交網(wǎng)絡(luò)層。 ●在網(wǎng)絡(luò)層給 TCP 段加上包括源、目的主機(jī) IP 地址的 IP 報(bào)頭,生成一個(gè) IP 數(shù)據(jù)包,并將 IP 數(shù)據(jù)包送交鏈路層。 TCP/IP 協(xié)議的工作流程如下: ●在源主機(jī)上,應(yīng)用層將一串應(yīng)用數(shù)據(jù)流傳送給傳輸層。 TCP/IP 通信協(xié)議,包含了在 inter 上的網(wǎng)絡(luò)通信的標(biāo)準(zhǔn),以及一組網(wǎng)絡(luò)互聯(lián)的協(xié)議和路徑選擇算法, TCP 是傳輸控制協(xié)議,保證在傳輸中不會(huì)丟失; IP 是網(wǎng)絡(luò)協(xié)議,保證數(shù)據(jù)被傳到指定的地點(diǎn)。它是由 ARPANET 網(wǎng)的研究機(jī)構(gòu)發(fā)展起來(lái)的。其中 :被轉(zhuǎn)換為 %3C, 被轉(zhuǎn)換為 %3E。另外,一些特殊字符和 8bit 字被轉(zhuǎn)換成等值的十六進(jìn)制數(shù),并在前面加上 %來(lái)表示。有時(shí)只從上下很難判斷出一個(gè)空格字符是域分割符還是完整數(shù)據(jù)的一部分,比如像“ Jason liu”中的空格。 HTTP 支持三種類(lèi)型的中間系統(tǒng):代理服務(wù)器、網(wǎng)關(guān)型中間服務(wù)器、通道型服務(wù)器。客戶(hù)端主機(jī)與源服務(wù)器之間建立起點(diǎn)對(duì)點(diǎn)的直接連接關(guān)系,響應(yīng)速度當(dāng)然也是比較快的。通常情況下,客戶(hù)要經(jīng)過(guò)一個(gè)或多個(gè)中繼節(jié)點(diǎn)才能訪(fǎng)問(wèn)源服務(wù)器上指定的資源。 HTTP 的工作過(guò)程使用請(qǐng)求 /響應(yīng)握手方式: ①客戶(hù)發(fā)生連接,雙方建立起一個(gè) TCP 連接; ②客戶(hù)發(fā)出請(qǐng)求; ③服務(wù)器處理請(qǐng)求,返回應(yīng)答; 17 ④服務(wù)器關(guān)閉連接。 (3)超文本傳輸協(xié)議 HTTP(Hypertext Transfer Protocol):規(guī)定 WWW 服務(wù)器與瀏覽器之間信息傳遞規(guī)范的網(wǎng)絡(luò)協(xié)議。此語(yǔ)言具有可移植性好、能較好的保持文獻(xiàn)的邏輯完整性等特點(diǎn)。 WEB 協(xié)議 簇 WEB 協(xié)議族可以分為三大塊: (1)、超文本標(biāo)識(shí)語(yǔ)言 HTML(Hypertext Makeup Language):專(zhuān)門(mén)用于進(jìn)行信息的表 現(xiàn)和發(fā)布。 ActiveX 服務(wù)器框架( ActiveX Server Framework) ;提供了一系列針對(duì) WEB 服務(wù)器應(yīng)用程序設(shè)計(jì)各個(gè)方面的函數(shù)及其封裝類(lèi),諸如服務(wù)器過(guò)濾器、 HTML 數(shù)據(jù)流控制等。 ActiveX 文檔( ActiveX Document);用于在 WEB Browser 或者其它支持 ActiveX 的容器中瀏覽復(fù)合文檔(非 HTML 文檔),例如 Microsoft Word 文檔, Microsoft Excel 文檔或者用戶(hù)自定義的文檔等。 ActiveX的內(nèi)容 ActiveX 既包含服務(wù)器端技術(shù),也包含客戶(hù)端技術(shù)。作為針對(duì)Inter 應(yīng)用開(kāi)發(fā)的技術(shù), ActiveX 被廣泛應(yīng)用于 WEB 服務(wù)器以及客戶(hù)端的各個(gè)方面。 ActiveX概要 ActiveX 是 Microsoft 提出的一組使用 COM( Component Object Model,部件對(duì)象模型 )使得軟件部件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集。換句話(huà)說(shuō), CHtmlVi
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1