亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        醫(yī)療大數(shù)據(jù)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

        2022-01-14 08:43:36李志軍高榮鑫
        關(guān)鍵詞:文件夾網(wǎng)頁(yè)頁(yè)面

        劉 丹,李志軍,高榮鑫

        (吉林大學(xué)通信工程學(xué)院,長(zhǎng)春130012)

        0 引 言

        天文學(xué)、醫(yī)學(xué)等領(lǐng)域每天產(chǎn)生的數(shù)據(jù)已達(dá)到EB(Exabyte)字節(jié)以上[1-2],這些海量數(shù)據(jù)的收集、存儲(chǔ)和處理問(wèn)題亟待解決。分布式技術(shù)不僅能縮短數(shù)據(jù)處理時(shí)間,還能使多個(gè)用戶同時(shí)使用。Hadoop框架是應(yīng)用最廣泛的開(kāi)源分布式計(jì)算框架,其對(duì)計(jì)算機(jī)硬件要求不高,可靠性強(qiáng),容錯(cuò)率高,擴(kuò)展性好,理論上該系統(tǒng)可以布置在成百上千臺(tái)的低成本計(jì)算機(jī)上。目前,針對(duì)醫(yī)療大數(shù)據(jù)面臨的問(wèn)題和挑戰(zhàn),各種實(shí)用性強(qiáng)的醫(yī)療大數(shù)據(jù)平臺(tái)架構(gòu)方案被提出[3-6],但醫(yī)療大數(shù)據(jù)平臺(tái)網(wǎng)站的建設(shè)和相應(yīng)功能的實(shí)現(xiàn)還沒(méi)得到有效解決。

        筆者開(kāi)發(fā)了采用搭建Hadoop計(jì)算機(jī)集群方式實(shí)現(xiàn)的Hadoop平臺(tái),其功能包括:針對(duì)大量已知的醫(yī)療數(shù)據(jù)的存儲(chǔ)、下載以及數(shù)據(jù)的共享,并為不同權(quán)限的用戶給予不同的功能選項(xiàng);用分析處理數(shù)據(jù)效率較高的Python腳本完成對(duì)數(shù)據(jù)的可視化展示。

        1 平臺(tái)總體方案設(shè)計(jì)

        平臺(tái)的設(shè)計(jì)從實(shí)用性與功能性的角度出發(fā),采用分布式文件系統(tǒng)解決大量醫(yī)療數(shù)據(jù)文件的存儲(chǔ)問(wèn)題,以搭建網(wǎng)站平臺(tái)的方式實(shí)現(xiàn)數(shù)據(jù)文件的共享、下載和可視化展示。

        該平臺(tái)包含兩個(gè)核心部分:一部分是基于Hadoop搭建的分布式文件系統(tǒng),另一部分是基于Tomcat服務(wù)器搭建的網(wǎng)站平臺(tái),使用Hadoop Web API將二者連結(jié)起來(lái)(見(jiàn)圖1)。本平臺(tái)既擁有可靠存儲(chǔ)大量數(shù)據(jù)文件的優(yōu)勢(shì),又擁有網(wǎng)站平臺(tái)的輕量化以及功能多樣化的優(yōu)勢(shì)。其中分布式文件系統(tǒng)可運(yùn)行在普通的多臺(tái)計(jì)算機(jī)中,而用于運(yùn)行網(wǎng)站的服務(wù)器主機(jī)則需滿足有較高的網(wǎng)絡(luò)配置以及較大內(nèi)存、硬盤(pán)等性能要求。

        圖1 醫(yī)療大數(shù)據(jù)平臺(tái)總體架構(gòu)示意圖Fig.1 General architecture of medical big data platform

        2 Hadoop分布式文件系統(tǒng)開(kāi)發(fā)

        2.1 分布式文件系統(tǒng)HDFS

        分布式文件系統(tǒng)(HDFS:Hadoop Distributed File System)是Hadoop系統(tǒng)基本核心架構(gòu)之一,主要由主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)兩部分構(gòu)成[7-9]。主節(jié)點(diǎn)(NameNode)負(fù)責(zé)提供元數(shù)據(jù)服務(wù),針對(duì)整個(gè)文件系統(tǒng)的存儲(chǔ)空間、文件名稱和路徑、文件分塊信息、備份信息及其存儲(chǔ)位置進(jìn)行管理,并對(duì)外部用戶訪問(wèn)整個(gè)系統(tǒng)中的文件資源、文件操作進(jìn)行控制。系統(tǒng)中通常存在多個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode),數(shù)據(jù)節(jié)點(diǎn)的功能除了對(duì)已經(jīng)分塊的數(shù)據(jù)進(jìn)行存儲(chǔ)外,數(shù)據(jù)節(jié)點(diǎn)還可以接收主節(jié)點(diǎn)的指令,包括對(duì)數(shù)據(jù)塊的創(chuàng)建、復(fù)制、刪除和讀取等命令。

        2.2 分布式協(xié)調(diào)服務(wù)框架Zookeeper

        此框架主要用于解決平臺(tái)的數(shù)據(jù)管理以及系統(tǒng)一致性問(wèn)題,同時(shí)也是Hadoop的重要組件。主要功能包括:數(shù)據(jù)的發(fā)布和訂閱,資源的ID分配,分布式系統(tǒng)調(diào)度,用分布式鎖以保證不同系統(tǒng)訪問(wèn)同一資源的一致性,分布式工作匯報(bào),心跳檢測(cè),分布式隊(duì)列。此框架的計(jì)算機(jī)集群是一個(gè)基于主從架構(gòu)的高可用集群,包含領(lǐng)導(dǎo)者(Leader)和學(xué)習(xí)者(Learner)兩部分,學(xué)習(xí)者又包含追隨者(Follower)和觀察者(Observer)。領(lǐng)導(dǎo)者負(fù)責(zé)檢測(cè)和維護(hù)心跳機(jī)制,追隨者可以直接處理讀請(qǐng)求,擁有投票權(quán),觀察者的功能與追隨者類似,但無(wú)投票權(quán)。此框架還有一個(gè)選舉機(jī)制,在整個(gè)服務(wù)器啟動(dòng)或領(lǐng)導(dǎo)者宕機(jī)時(shí),由各部分投票選舉出領(lǐng)導(dǎo)者。

        2.3 分布式文件系統(tǒng)的API編寫(xiě)

        Hadoop平臺(tái)基于Java語(yǔ)言開(kāi)發(fā),HDFS文件系統(tǒng)的操作基于Java編程實(shí)現(xiàn),筆者使用版本為2018.2.2的編程軟件IntelliJ IDEA。首先新建一個(gè)Maven工程,然后在src文件夾中的main文件夾中新建一個(gè)類,之后導(dǎo)入編寫(xiě)Hadoop API需要的依賴,其寫(xiě)法如下所示。需要導(dǎo)入的依賴名分別為:組名org.apache.hadoop,項(xiàng)目名hadoop-common、hadoop-client、hadoop-hdfs、hadoop-mapreduce-client-core,版本均為2.7.5;組名junit和項(xiàng)目名junit,版本為RELEASE。將依賴導(dǎo)入完成后,便可以進(jìn)行代碼的編寫(xiě)。

        上傳功能的代碼中定義了一個(gè)有返回值的靜態(tài)函數(shù)以方便使用時(shí)調(diào)用,函數(shù)名為HdfsUploadFiles,調(diào)用此函數(shù)時(shí)需要傳入3個(gè)參數(shù):1)HdfsPort為HDFS文件系統(tǒng)的IP地址和端口號(hào)(“hdfs:∥192.168.1.1:8020”);2)LocalFilePath是將要上傳的文件在本地文件系統(tǒng)中的路徑:(D:/Lenovo/test.txt);3)HdfsFilePath為用戶想要上傳到HDFS文件系統(tǒng)的目錄(“/text”),“/”代表HDFS文件系統(tǒng)的根目錄,按此方法填寫(xiě)路徑,文件將上傳到HDFS文件系統(tǒng)的text文件夾下,假如文件系統(tǒng)中沒(méi)有此文件夾,系統(tǒng)將會(huì)自動(dòng)創(chuàng)建此文件夾。在程序執(zhí)行成功后將會(huì)返回true。

        文件下載代碼的函數(shù)名為HdfsDownloadFile,調(diào)用此函數(shù)同樣需要3個(gè)參數(shù)。假如HDFS中不存在字符串中包含的文件,系統(tǒng)會(huì)輸出錯(cuò)誤信息,此外通過(guò)此函數(shù)下載文件時(shí),在文件下載目錄還會(huì)生成一個(gè)后綴為.crc的校驗(yàn)文件,執(zhí)行成功后返回true。

        文件刪除代碼用于刪除HDFS文件系統(tǒng)上的文件,函數(shù)名為DeletHdfsFile,調(diào)用此函數(shù)需要傳入HDFS端口號(hào)和HDFS上的文件路徑,在刪除成功后函數(shù)返回true。

        創(chuàng)建文件夾代碼用于在HDFS文件系統(tǒng)中創(chuàng)建文件夾,并且可遞歸創(chuàng)建,函數(shù)名為MkdirHdfs,調(diào)用此函數(shù)需要傳入HDFS端口號(hào)以及想要在HDFS上創(chuàng)建的文件夾的路徑,在創(chuàng)建成功后函數(shù)返回true。

        用瀏覽文件代碼可以瀏覽HDFS目錄下所有文件及文件夾,同時(shí)將這些路徑用“!”連接成字符串,以便之后將字符串解析成文件路徑。

        為方便對(duì)以上各函數(shù)的調(diào)用,使用軟件將本工程導(dǎo)出為jar包,稱之為HDFS API包。對(duì)于HDFS文件系統(tǒng)的操作均可通過(guò)調(diào)用該jar包中的方法實(shí)現(xiàn)。

        3 Web服務(wù)器

        本項(xiàng)目中所使用的服務(wù)器為湯姆貓服務(wù)器(Tomcat),該服務(wù)器具有以下特點(diǎn)[10-11]:占用各種資源都很小,部署及使用十分方便;支持Servlet和JSP(Java Server Pages);既能提供靜態(tài)資源的訪問(wèn)服務(wù),又能提供動(dòng)態(tài)技術(shù)的服務(wù);安全性較高,外部通過(guò)網(wǎng)絡(luò)無(wú)法直接訪問(wèn)到后臺(tái)代碼內(nèi)容;兼容性較好,許多制作Web項(xiàng)目的軟件都為該服務(wù)器提供接口,并且可在軟件內(nèi)直接運(yùn)行,十分方便高效。

        為實(shí)現(xiàn)一個(gè)動(dòng)態(tài)的網(wǎng)站,常用的技術(shù)包括Servlet和JSP兩種。Servlet技術(shù)是在服務(wù)器上用Java編寫(xiě)并運(yùn)行的程序,編寫(xiě)程序時(shí)需要導(dǎo)入所需接口的JAR包??蛻舳说挠脩粽?qǐng)求信息通過(guò)服務(wù)器,發(fā)送給servlet程序,程序運(yùn)行后得到結(jié)果,經(jīng)服務(wù)器再發(fā)回給客戶端;JSP技術(shù)指的是以.jsp為結(jié)尾的一類文件,在該文件中既可使用超文本標(biāo)記語(yǔ)言(HTML:HyperText Markup Language),同時(shí)也能加入Java語(yǔ)言所編寫(xiě)的代碼,本質(zhì)上也是一種Servlet程序[12]。JSP文件必須運(yùn)行在服務(wù)器上才能被解析為網(wǎng)頁(yè)顯示出來(lái),不同于HTML文件,直接使用瀏覽器打開(kāi)是無(wú)法顯示JSP文件所想要顯示的內(nèi)容的。通過(guò)MVC(Model View Controller)模式[13]可使Servlet和JSP技術(shù)結(jié)合,Servlet實(shí)現(xiàn)控制與模型部分,JSP實(shí)現(xiàn)結(jié)果展示部分。

        3.1 創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)

        從Tomcat官網(wǎng)上下載最新的8.0.5版本服務(wù)器,下載完成后解壓在一定位置。配置好所需的服務(wù)器后就可以開(kāi)始創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)工程了。

        制作網(wǎng)頁(yè)使用軟件Eclipse,版本:4.4.2。首先在軟件中新建一個(gè)動(dòng)態(tài)網(wǎng)頁(yè)工程,該軟件會(huì)自動(dòng)創(chuàng)建該工程所需要的文件路徑以及依賴等相關(guān)資源。在WebContent文件夾下主要存放有關(guān)HTML和JSP頁(yè)面相關(guān)內(nèi)容的資源文件。Java代碼放在src文件夾下,根據(jù)Java代碼實(shí)現(xiàn)的功能類別不同可以創(chuàng)建不同的文件夾,以便于后期的調(diào)整和維護(hù)。

        新建Servlet程序只需在新建的文件夾上點(diǎn)擊右鍵,在New選項(xiàng)中可以找到Servelt選項(xiàng),在新建時(shí)根據(jù)需求選擇使用doGet方法或doPost方法。

        要完成文件瀏覽功能,不需要前端頁(yè)面向后端程序傳入?yún)?shù),利用HDFS API包即可完成讀取文件目錄。代碼導(dǎo)入后,就可以直接在代碼中調(diào)用各種函數(shù),在程序中調(diào)用函數(shù)并傳入?yún)?shù),會(huì)返回一個(gè)包含所有文件路徑的字符串,對(duì)字符串進(jìn)行簡(jiǎn)單的處理,便可將文件路徑直接打印在前端頁(yè)面進(jìn)行展示。

        對(duì)完成文件下載功能的Servlet程序,只需接收來(lái)自前端或其他程序的一個(gè)字符串變量,該字符串變量所包含的是文件在HDFS文件系統(tǒng)上的路徑信息,便可以直接從HDFS文件系統(tǒng)將文件下載到服務(wù)器,之后文件再由服務(wù)器傳輸?shù)娇蛻舳藶g覽器,瀏覽器便會(huì)自動(dòng)接收文件并進(jìn)行下載。

        本項(xiàng)目中使用的前端框架主要為Bootstrap,包含各種快捷可用的網(wǎng)頁(yè)頁(yè)面設(shè)計(jì),極大節(jié)省了設(shè)計(jì)制作前端頁(yè)面所需的時(shí)間。與此同時(shí),制作的前端網(wǎng)頁(yè)包含部分驗(yàn)證功能以降低后端代碼的復(fù)雜度,比如在前端動(dòng)態(tài)驗(yàn)證用戶注冊(cè)的用戶名是否存在,已存在則不可用,無(wú)法提交注冊(cè)信息,此功能主要由JavaScript語(yǔ)言編寫(xiě)的腳本完成。HTML用于編輯網(wǎng)頁(yè)的主要內(nèi)容;CSS用于對(duì)主要內(nèi)容編輯動(dòng)畫(huà)或其他視覺(jué)效果;JavaScript用于實(shí)現(xiàn)輔助功能。

        3.2 數(shù)據(jù)可視化模塊

        本項(xiàng)目中數(shù)據(jù)可視化的實(shí)現(xiàn)主要過(guò)程:首先由Java程序運(yùn)行python腳本進(jìn)行文件數(shù)據(jù)分析,傳出參數(shù),由Java程序接收,經(jīng)過(guò)轉(zhuǎn)發(fā)將參數(shù)傳遞給前端,最后,通過(guò)前端插件echarts進(jìn)行數(shù)據(jù)可視化展示。對(duì)python腳本的編寫(xiě),需要讀取并進(jìn)行可視化展示的是Excel文件,使用Pandas庫(kù)讀取Excel文件中的內(nèi)容,使用一定方法進(jìn)行統(tǒng)計(jì)從而得出需要的表格信息,最后將數(shù)據(jù)通過(guò)插件顯示。

        3.3 其他功能模塊的實(shí)現(xiàn)

        本平臺(tái)還設(shè)計(jì)了其他功能模塊以便于功能的擴(kuò)展。比如常用軟件的下載模塊:可將常用的功能軟件放在服務(wù)器中,用戶通過(guò)網(wǎng)頁(yè)便可以直接下載并使用該程序;本平臺(tái)還提供python腳本的運(yùn)行環(huán)境,故可以在網(wǎng)站直接命令服務(wù)器主機(jī)運(yùn)行指定的python程序并將結(jié)果返回給瀏覽器頁(yè)面,使用服務(wù)器的計(jì)算資源而不占用客戶端的資源。另外,該模塊還提供了按照條件篩選數(shù)據(jù)的網(wǎng)頁(yè)程序,該程序使用了Streamlit庫(kù),用于給出python程序一個(gè)可視化的網(wǎng)頁(yè),不同于其他Web工程,此程序在運(yùn)行時(shí)只占用一個(gè)端口,不需要運(yùn)行在網(wǎng)絡(luò)服務(wù)器中,直接將數(shù)據(jù)展示在網(wǎng)頁(yè)上,不需要配置路由等信息。

        4 系統(tǒng)的安裝和測(cè)試

        Linux系統(tǒng)是安裝Hadoop平臺(tái)的最佳選擇。由于實(shí)驗(yàn)室條件下可利用的計(jì)算機(jī)資源有限,故選擇在1臺(tái)計(jì)算機(jī)(后面稱為試驗(yàn)機(jī))上安裝3臺(tái)虛擬機(jī)模擬多臺(tái)計(jì)算機(jī)的情況。

        4.1 虛擬機(jī)的安裝

        測(cè)試計(jì)算機(jī)系統(tǒng)為Windows 10家庭中文版,系統(tǒng)版本號(hào)1909。第1步,安裝VMware;第2步,安裝Linux系統(tǒng):下載CentOS的鏡像文件,使用CentOS 6.5的64位版本。本實(shí)驗(yàn)中,試驗(yàn)機(jī)的內(nèi)存為16 GByte,所以給每臺(tái)虛擬機(jī)的運(yùn)行內(nèi)存設(shè)置為1~4 GByte。將已經(jīng)安裝好的虛擬機(jī)再?gòu)?fù)制兩份,給這3臺(tái)虛擬機(jī)分別命名node01、node02以及node03。

        4.2 配置Linux環(huán)境

        配置Linux環(huán)境:首先查看Windows系統(tǒng)內(nèi)所有正在運(yùn)行的服務(wù),確認(rèn)與VMware相關(guān)的服務(wù)已經(jīng)全部開(kāi)啟。其次,在VMware的虛擬網(wǎng)絡(luò)編輯器中查看NAT(Network Address Translation)設(shè)置,確認(rèn)VmNet網(wǎng)卡已經(jīng)配置好IP地址以及DNS(Domain Name System)服務(wù)器。最后,按照集群規(guī)劃分別配置3臺(tái)虛擬機(jī)的環(huán)境。啟動(dòng)虛擬機(jī),開(kāi)機(jī)完成后在命令行完成以下修改操作:修改每臺(tái)機(jī)器的MAC地址、IP地址、主機(jī)名和域名映射。

        所有內(nèi)容修改成功后重啟Linux系統(tǒng),將3臺(tái)機(jī)器配置為關(guān)閉防火墻,禁止開(kāi)機(jī)啟動(dòng),關(guān)閉Selinux,設(shè)置虛擬機(jī)的免密登錄,最后設(shè)置3臺(tái)虛擬機(jī)的時(shí)鐘同步。

        4.3 給Linux安裝Java環(huán)境和Zookeeper服務(wù)

        配置環(huán)境。首先查看3臺(tái)機(jī)器自帶的Openjdk并卸載,將從Java官方網(wǎng)站下載的以.tar.gz為結(jié)尾的Java環(huán)境安裝包,上傳到虛擬機(jī)中并分別在3臺(tái)虛擬機(jī)中解壓縮,之后再分別給3臺(tái)及其配置Java的環(huán)境變量。

        配置好Java環(huán)境變量后,再給3臺(tái)虛擬機(jī)安裝MySQL數(shù)據(jù)庫(kù)。將從Apache官網(wǎng)下載的以.tar.gz為結(jié)尾的zookeeper安裝包,本實(shí)驗(yàn)中所下載版本為3.4.9版本,之后解壓此壓縮包,修改其中配置文件并且分別給3臺(tái)虛擬機(jī)添加myid配置文件。

        最后分別在3臺(tái)虛擬機(jī)命令行啟動(dòng)Zookeeper服務(wù),使用以下命令運(yùn)行服務(wù)和查看狀態(tài):

        4.4 安裝配置Hadoop和服務(wù)器

        將Hadoop安裝包上傳到虛擬機(jī),之后解壓并修改配置文件,配置hadoop相關(guān)的環(huán)境變量。在各個(gè)虛擬機(jī)上啟動(dòng)集群服務(wù),命令行輸入jps,Hadoop運(yùn)行成功。在命令行輸入“sbin/start-dfs.sh”,便可以成功啟動(dòng)HDFS文件系統(tǒng)。

        下載Tomcat服務(wù)器的壓縮版本,之后將其解壓在工程指定文件夾。解壓后,進(jìn)入到其bin文件夾下,在此文件目錄中打開(kāi)Windows命令行窗口并運(yùn)行startup文件啟動(dòng)服務(wù)器。

        4.5 工程部署與測(cè)試

        關(guān)于網(wǎng)站工程的部署,筆者通過(guò)eclipse軟件將工程導(dǎo)出成以war為結(jié)尾的文件包,之后將此文件放入服務(wù)器文件目錄的webapps文件夾。這種方式比較方便,可節(jié)省服務(wù)器存儲(chǔ)空間。

        由于從外部網(wǎng)絡(luò)訪問(wèn)網(wǎng)站需要專有域名或公網(wǎng)IP,在實(shí)驗(yàn)室為方便測(cè)試,使用內(nèi)網(wǎng)穿透工具,此工具將本地端口映射到外部網(wǎng)絡(luò)可以訪問(wèn)的域名。實(shí)驗(yàn)中使用釘釘內(nèi)網(wǎng)穿透工具,進(jìn)入到ding.exe存在的目錄,在此目錄下打開(kāi)命令行,輸入命令:ding.exe-config=./ding.cfg-subdomain=mbdp 8080。

        之后該軟件便將本機(jī)8080端口映射到mbdp.vaiwan.com域名地址,此時(shí)在網(wǎng)絡(luò)任意一臺(tái)設(shè)備的瀏覽器中輸入以上域名便可訪問(wèn)到本機(jī)對(duì)應(yīng)端口所共享的內(nèi)容。

        經(jīng)過(guò)運(yùn)行與測(cè)試,該網(wǎng)站能成功運(yùn)行并完成相關(guān)功能。其用戶注冊(cè)頁(yè)面如圖2所示;經(jīng)過(guò)實(shí)際測(cè)試文件的上傳與下載等功能均能正常使用,其上傳與下載速度取決于當(dāng)時(shí)所處的網(wǎng)絡(luò)環(huán)境,文件下載和上傳頁(yè)面如圖3、圖4所示;導(dǎo)入大量的醫(yī)療數(shù)據(jù),經(jīng)統(tǒng)計(jì)后可輸出圖形化顯示,如圖5、圖6所示。

        圖2 用戶注冊(cè)頁(yè)面示意圖Fig.2 Schematic diagram of user registration page

        圖3 文件下載頁(yè)面Fig.3 File download page

        圖4 文件上傳頁(yè)面Fig.4 File upload page

        圖5 顯示數(shù)據(jù)關(guān)系的條形圖Fig.5 Bar chart of data relationships

        圖6 顯示數(shù)據(jù)關(guān)系的餅形圖Fig.6 Pie chart of data relationships

        5 結(jié) 語(yǔ)

        筆者使用Hadoop分布文件系統(tǒng)、Web服務(wù)器開(kāi)發(fā)設(shè)計(jì)了針對(duì)醫(yī)療大數(shù)據(jù)的平臺(tái),給出了本平臺(tái)的總體設(shè)計(jì)方案、網(wǎng)站服務(wù)器及相應(yīng)軟件安裝配置方法。通過(guò)平臺(tái)的搭建部署以及測(cè)試運(yùn)行,實(shí)現(xiàn)了數(shù)據(jù)存儲(chǔ)、下載、數(shù)據(jù)的可視化展示以及運(yùn)行腳本完成對(duì)數(shù)據(jù)的統(tǒng)計(jì)與分析等功能。

        猜你喜歡
        文件夾網(wǎng)頁(yè)頁(yè)面
        大狗熊在睡覺(jué)
        磁力文件夾
        刷新生活的頁(yè)面
        基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
        電子制作(2018年10期)2018-08-04 03:24:38
        調(diào)動(dòng)右鍵 解決文件夾管理三大難題
        基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
        TC一鍵直達(dá)常用文件夾
        電腦迷(2015年1期)2015-04-29 21:24:13
        10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)
        同一Word文檔 縱橫頁(yè)面并存
        激情综合婷婷色五月蜜桃| 亚洲熟妇中文字幕日产无码| 久久最黄性生活又爽又黄特级片| 人妻一区二区三区av| 熟妇激情内射com| 91精彩视频在线观看| 国产三级伦理视频在线| 日本亚洲视频一区二区三区| 玩中年熟妇让你爽视频| 精品欧美乱子伦一区二区三区| 一区二区三区在线观看日本视频| av天堂最新在线播放| 亚洲国产精品无码专区影院| 国产99re在线观看只有精品| 久久精品一区二区三区不卡牛牛| 国产av剧情一区二区三区| 性欧美videofree高清精品| 久久精品国产亚洲AV成人公司| 女同久久精品国产99国产精| 黄片视频免费在线观看国产| 国产真实夫妇视频| 精品熟女少妇免费久久| 国产视频一区2区三区| 97se亚洲国产综合自在线观看| 久久国产色av| 亚洲va精品va国产va| 免费人成视网站在线剧情| 少妇下蹲露大唇无遮挡| 一区二区韩国福利网站| 中文字幕亚洲乱码熟女1区2区| 免费又黄又爽又色的视频| 亚洲日韩乱码中文无码蜜桃臀| 亚洲精品中文字幕乱码二区| 精品国产一区二区三区av天堂| 亚洲成a v人片在线观看| 久久精品国产亚洲一区二区| 国产又大大紧一区二区三区| 曰本女人与公拘交酡| 福利网址在线观看| 亚洲自偷自拍另类第一页 | 午夜天堂一区人妻|