• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Node.js和JS的前后端分離實(shí)現(xiàn)

    2019-10-08 06:52張鵬飛王乾胡曉冬
    軟件 2019年4期

    張鵬飛 王乾 胡曉冬

    摘 ?要: 針對(duì)Web開發(fā)中前后端耦合問(wèn)題,在充分分析傳統(tǒng)開發(fā)模式的基礎(chǔ)上,提出引入Node.js來(lái)解決前后端語(yǔ)言不一致的解決新方案。設(shè)計(jì)的新架構(gòu)模式針對(duì)小型團(tuán)隊(duì)或個(gè)人開發(fā)Web項(xiàng)目提出新的方向,從而解決了人力不足,開發(fā)耗費(fèi)巨大,前后端不同語(yǔ)言溝通耦合困難的問(wèn)題?;诖搜芯浚鎸?shí)開發(fā)了一個(gè)基于網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)自學(xué)平臺(tái),并以此作為可行性檢驗(yàn)的依據(jù),系統(tǒng)采用B/S架構(gòu),后端程序在Node服務(wù)器中運(yùn)行,數(shù)據(jù)傳輸則采用了Ajax的無(wú)刷新技術(shù)。后臺(tái)添加課程后,用戶經(jīng)注冊(cè)可以達(dá)到在線學(xué)習(xí)的目的,并可以進(jìn)行實(shí)時(shí)提問(wèn)輔助自學(xué)過(guò)程。方便簡(jiǎn)潔的后臺(tái)管理系統(tǒng)可以讓管理員及時(shí)形象地了解所有用戶實(shí)時(shí)學(xué)習(xí)情況,整個(gè)系統(tǒng)獨(dú)立完整,不依賴其他程序,聯(lián)網(wǎng)的瀏覽器即可完成用戶在線,學(xué)習(xí)后臺(tái)實(shí)時(shí)查看,方便快速,滿足當(dāng)今社會(huì)碎片化時(shí)間和快節(jié)奏需求。

    關(guān)鍵詞: Web開發(fā);Node.js;JavaScript;Ajax;前后端分離;在線學(xué)習(xí)平臺(tái)

    中圖分類號(hào): TP311.52 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.04.003

    本文著錄格式:張鵬飛,王乾,胡曉冬,等. 基于Node.js和JS的前后端分離實(shí)現(xiàn)[J]. 軟件,2019,40(4):1117

    【Abstract】: Aiming at the problem of front-end coupling in web development, this paper proposes a new solution that introduces Node.js to solve the inconsistency of front-end language by fully analyzing the traditional development mode. The new architectural model of the design proposes a new direction for small teams or individuals to develop Web projects, thus solving the problem of lack of manpower, huge cost of development, and difficulties in communication between front and back. Based on this research, we have developed a self-learning platform based on web design, and use it as the basis of feasibility test, the system adopts B/S architecture, the back-end program runs in Node server, and the data transfer adopts Ajax-free technology. After adding courses in the background, users can achieve the purpose of online learning by registering and can conduct real-time questioning to assist self-study process. Convenient and concise backstage management system can let the administrator timely image to understand all users real-time learning situation, the whole system is independent and complete, do not rely on other programs, internet browser can complete the user online, learning background real-time viewing, convenient and fast, to meet the current social fragmentation time and fast-paced.

    【Key words】: Web development; Node.js; JavaScript; Ajax; Front-end separation; Online learning platform

    0 ?引言

    隨著信息化時(shí)代的飛躍式發(fā)展,移動(dòng)通信寬帶大幅提高、資費(fèi)不斷降低、互聯(lián)網(wǎng)業(yè)務(wù)創(chuàng)新速度加快和移動(dòng)終端功能逐漸增強(qiáng),用戶的信息服務(wù)需求開始由單一的語(yǔ)音服務(wù)和傳統(tǒng)的移動(dòng)增值服務(wù)向互動(dòng)化、多媒體化、多元化、融合化方向轉(zhuǎn)變[1]。網(wǎng)上購(gòu)物、網(wǎng)上支付、網(wǎng)上學(xué)習(xí)等等,互聯(lián)網(wǎng)已經(jīng)越來(lái)越深入的融入我們的生活。Web應(yīng)用的日益廣泛和Web開發(fā)技術(shù)的不斷發(fā)展,以用戶體驗(yàn)型網(wǎng)絡(luò)服務(wù)為特征的Web應(yīng)用代表了目前互聯(lián)網(wǎng)的發(fā)展趨勢(shì)[2]。

    互聯(lián)網(wǎng)的急速發(fā)展也給web開發(fā)帶來(lái)了越來(lái)越多的困難,復(fù)雜的界面交互、龐大的數(shù)據(jù)傳輸、更強(qiáng)的穩(wěn)定要求。為提高工作效率和程序性能,當(dāng)前web開發(fā)多采用前后端耦合的開發(fā)模式,前后端的發(fā)展都越來(lái)越高深,想要前后都做好的最好方法就是前后端獨(dú)立,然后進(jìn)行耦合。然而只有大中型公司才有能力進(jìn)行專分,小公司或個(gè)人獨(dú)立項(xiàng)目也需要前后端分離卻受限于人力與資金。本文中試圖采用JavaScript解決前后端語(yǔ)言不一致,以Node.js為后端語(yǔ)言,采用MVC模型,使開發(fā)成本與開發(fā)難度大大減小,并且通過(guò)網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)自主學(xué)習(xí)平臺(tái)的實(shí)例開發(fā),驗(yàn)證了該模型的可行性。

    1 ?Node.js前后端開發(fā)特點(diǎn)

    1.1 ?為什么使用Node.js

    1.1.1 ?傳統(tǒng)Web應(yīng)用開發(fā)流程

    在過(guò)去,編寫Web應(yīng)用是一個(gè)相當(dāng)標(biāo)準(zhǔn)化的流程。你有一個(gè)或多個(gè)服務(wù)器部署在機(jī)器上并監(jiān)聽某個(gè)端口(如HTTP的80端口),每當(dāng)服務(wù)器接收到一個(gè)請(qǐng)求時(shí),它會(huì)創(chuàng)建一個(gè)進(jìn)程或者線程去處理和響應(yīng)請(qǐng)求。處理這些請(qǐng)求會(huì)頻繁地與外部服務(wù)進(jìn)行通信,比如數(shù)據(jù)庫(kù)、內(nèi)存緩存、外部計(jì)算服務(wù)器或者僅僅是文件系統(tǒng)。當(dāng)所有的工作最終結(jié)束之后,線程或者進(jìn)程會(huì)返回到“可用”服務(wù)器池中,這樣服務(wù)器就可以處理更多的請(qǐng)求了。這個(gè)過(guò)程符合人的思維方式,容易讓人理解,編寫程序時(shí)也很簡(jiǎn)單。但是這中模型有兩個(gè)缺點(diǎn):

    (1)資源耗費(fèi)巨大

    創(chuàng)建一個(gè)線程就會(huì)消耗一定的資源。對(duì)于使用PHP和Apache構(gòu)建的應(yīng)用,單進(jìn)程可能需要10MB左右的內(nèi)存,所以根據(jù)業(yè)務(wù)需求較大那么對(duì)內(nèi)存的要求會(huì)很高。對(duì)于大型服務(wù)器,由于需要不斷的創(chuàng)建新線程來(lái)處理請(qǐng)求,很快,服務(wù)器的內(nèi)存就會(huì)耗盡,出現(xiàn)反應(yīng)極慢或假死狀態(tài),嚴(yán)重時(shí)可導(dǎo)致服務(wù)器崩潰。

    (2)線程阻塞

    由于Web服務(wù)器會(huì)經(jīng)常與數(shù)據(jù)庫(kù)、緩存服務(wù)器、外部服務(wù)器或文件系統(tǒng)進(jìn)行通信,如果數(shù)據(jù)量過(guò)大,則會(huì)家具等待時(shí)間,直到這些數(shù)據(jù)處理完服務(wù)器才會(huì)返回響應(yīng)。當(dāng)服務(wù)器等待響應(yīng)的時(shí)候,當(dāng)前線程就會(huì)被‘阻塞,無(wú)法繼續(xù)進(jìn)行處理其他數(shù)據(jù)。因此,消耗的服務(wù)器資源和當(dāng)前進(jìn)程或線程會(huì)被完全凍結(jié),直到外部組件返回響應(yīng)后,進(jìn)程或線程才能繼續(xù)完成處理,并把結(jié)果返回給客戶端,進(jìn)而等待下一個(gè)請(qǐng)求[3]。

    1.1.2 ?Node.js的優(yōu)點(diǎn)

    Node.js借助JavaScript特有的事件驅(qū)動(dòng)機(jī)制和V8高性能引擎,使得編寫高性能Web服務(wù)更加輕而易舉,因?yàn)樗耆珮?gòu)建在事件驅(qū)動(dòng)、非阻塞的編程模型上,所以它不會(huì)出現(xiàn)傳統(tǒng)模式中的線程阻塞,不過(guò)Node.js本身是支持同步編程的,所以在一些特殊情況下,也依然是可以滿足需求的。

    (1)非阻塞

    Node.js是單進(jìn)程的,新建一個(gè)node進(jìn)程那將是一個(gè)全新的進(jìn)程,兩者之間沒有直接聯(lián)系。對(duì)于每一個(gè)進(jìn)程,除非異常或手動(dòng)停止否則它將持續(xù)進(jìn)行。當(dāng)服務(wù)器收到請(qǐng)求,該進(jìn)程會(huì)將請(qǐng)求分發(fā)給特定的進(jìn)程去處理(比如傳給一個(gè)數(shù)據(jù)庫(kù)查詢的進(jìn)程),在特地進(jìn)程處理上一個(gè)請(qǐng)求過(guò)程中主進(jìn)程仍然可以接受請(qǐng)求并進(jìn)行分發(fā)處理,直到上一個(gè)請(qǐng)求處理完成返回響應(yīng)后該進(jìn)程結(jié)束,達(dá)到非阻塞目的。

    (2)事件驅(qū)動(dòng)

    Node.js進(jìn)程持續(xù)進(jìn)行,當(dāng)有請(qǐng)求傳入,服務(wù)器才開始處理請(qǐng)求,請(qǐng)求就是驅(qū)動(dòng)處理的事件。

    2 ?自主學(xué)習(xí)平臺(tái)概述

    隨著科學(xué)技術(shù)的高速發(fā)展和知識(shí)經(jīng)濟(jì)的興起,教會(huì)學(xué)生學(xué)習(xí),構(gòu)建終身學(xué)習(xí)體系,建設(shè)學(xué)習(xí)型社會(huì)已經(jīng)成為當(dāng)今世界各國(guó)教育改革與發(fā)展的重要目標(biāo)。自主學(xué)習(xí)作為一種有效的學(xué)習(xí)方式和相對(duì)穩(wěn)定可遷移的學(xué)習(xí)能力,不僅有利于提高學(xué)生的學(xué)習(xí)成績(jī),也是實(shí)現(xiàn)終身學(xué)習(xí)和畢生發(fā)展的前提和基礎(chǔ)[4]。計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展和普及,高校傳統(tǒng)的教育教學(xué)管理模式和理念已經(jīng)不能完全滿足需求。一直以來(lái),加強(qiáng)高校網(wǎng)絡(luò)自主學(xué)習(xí)平臺(tái)建設(shè)的探索和研究,謀求適合大學(xué)生個(gè)性化發(fā)展的自主學(xué)習(xí)模式,加強(qiáng)大學(xué)生信息化水平和信息素養(yǎng)具有重要作用[5]。

    2.1 ?當(dāng)前在線學(xué)習(xí)平臺(tái)

    2.1.1 ?概述

    在線學(xué)習(xí)平臺(tái)是學(xué)習(xí)者通過(guò)網(wǎng)絡(luò)學(xué)習(xí)的一種學(xué)習(xí)媒介,學(xué)習(xí)者可以在在線學(xué)習(xí)平臺(tái)上獲取學(xué)習(xí)資源、跟老師進(jìn)行活動(dòng),或者與其他學(xué)習(xí)者進(jìn)行交流討論。在線學(xué)習(xí)平臺(tái)可以通過(guò)記錄學(xué)員在線上參加學(xué)習(xí)的課程進(jìn)度、課后練習(xí)鞏固程度、模擬考場(chǎng)考試、答疑解惑互相交流等情況,實(shí)現(xiàn)對(duì)學(xué)員學(xué)習(xí)情況的全程跟蹤管理和對(duì)學(xué)員學(xué)習(xí)需求的全面掌握,可以通過(guò)對(duì)學(xué)員學(xué)習(xí)數(shù)據(jù)分析的進(jìn)行學(xué)習(xí)進(jìn)度及方向上的調(diào)整,讓學(xué)習(xí)者更加系統(tǒng)、全面、科學(xué)的學(xué)習(xí)。

    2.1.2 ?現(xiàn)狀

    當(dāng)前國(guó)內(nèi)的在線學(xué)習(xí)平臺(tái)形形色色,大都采用網(wǎng)上培訓(xùn)班的方式進(jìn)行授課,因此授課質(zhì)量也是魚龍混雜。比較出名的如騰訊課堂,它開設(shè)有各種課程,學(xué)員購(gòu)買后就可以得到老師每天按時(shí)的在線直播授課。也有一些是個(gè)人開設(shè)的網(wǎng)課,受人力物力影響只能側(cè)重某一方面的學(xué)習(xí)培訓(xùn),不能保證適合所有類型學(xué)生。還有一些與高校合作的網(wǎng)絡(luò)課平臺(tái),比如超星、智慧樹等。這些平臺(tái)收錄國(guó)內(nèi)外知名高校教師的講課視頻,其他高校學(xué)生就可以達(dá)到資源共享的目的。

    但是綜上各種類項(xiàng)在線學(xué)習(xí)平臺(tái)都有一個(gè)特點(diǎn):面向公共客戶,不能制定符合高校內(nèi)部特定的學(xué)習(xí)計(jì)劃,靈活性較差。因此針對(duì)本校網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)課程,開發(fā)一個(gè)符合教師課程講授、易于學(xué)生自學(xué)的在線學(xué)習(xí)平臺(tái)。

    2.2 ?自主學(xué)習(xí)平臺(tái)

    自主學(xué)習(xí)平臺(tái)從本校學(xué)習(xí)安排出發(fā),結(jié)合教師個(gè)人特色以及學(xué)生學(xué)習(xí)需求,制定符合本校學(xué)生學(xué)習(xí)情況內(nèi)容安排合理的在線學(xué)習(xí)內(nèi)容。平臺(tái)內(nèi)容包含學(xué)習(xí)大綱,同步視頻,實(shí)時(shí)文檔,對(duì)應(yīng)課件等一系列與課程相關(guān)文件,供學(xué)生自學(xué)參考。

    (1)每門課的每節(jié)視頻都由本校授課教師按照教學(xué)進(jìn)度和教學(xué)大綱親自錄制。學(xué)生既可以以此參考自學(xué),拓展自己學(xué)習(xí)視野。也可以從中找查漏補(bǔ)缺,彌補(bǔ)自己學(xué)習(xí)中的不足。

    (2)課程對(duì)應(yīng)的主要內(nèi)容會(huì)由授課教師以文檔形式記錄。會(huì)上傳到平臺(tái),學(xué)生可以在線閱讀或下載后隨時(shí)查看。

    (3)對(duì)應(yīng)每節(jié)課都有專欄討論。針對(duì)本節(jié)課的任何疑問(wèn)都可以在次提問(wèn),老師會(huì)及時(shí)進(jìn)行解答,其他學(xué)生可以參與解答。解答問(wèn)題設(shè)有獎(jiǎng)勵(lì),以此鼓勵(lì)學(xué)生進(jìn)行互相學(xué)習(xí)。

    (4)課程數(shù)目、類項(xiàng)、內(nèi)容可以以高校實(shí)際情況進(jìn)行更改調(diào)整。

    3 ?自主學(xué)習(xí)平臺(tái)設(shè)計(jì)

    3.1 ?概要

    系統(tǒng)采用B/S結(jié)構(gòu),用戶交互由瀏覽器實(shí)現(xiàn),業(yè)務(wù)邏輯在服務(wù)器實(shí)現(xiàn),數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器內(nèi),構(gòu)成常見的Web應(yīng)用三層:界面層(UI)業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問(wèn)層(DAL)。前端頁(yè)面包含首頁(yè)、登錄、注冊(cè)、課程等頁(yè)面。

    系統(tǒng)開發(fā)采用MVC(Model-View-Controller)框架,將界面展示邏輯(用戶界面)獨(dú)立到一些文件中(Views),把一些和用戶交互的程序邏輯(Controller)單獨(dú)放在一些文件中,在 Views 和 Controller 中傳遞數(shù)據(jù)使用一些專門封裝數(shù)據(jù)的實(shí)體對(duì)象Models。

    3.1.1 ?整體設(shè)計(jì)

    (1)前端頁(yè)面包含首頁(yè)、登錄、注冊(cè)、課程等頁(yè)面。

    (2)后端服務(wù)對(duì)頁(yè)面發(fā)來(lái)的數(shù)據(jù)進(jìn)行處理、如登陸驗(yàn)證、課程拉取等。

    (3)數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)注冊(cè)信息、學(xué)習(xí)進(jìn)度、視頻地址等數(shù)據(jù)。

    前后端分離但是采用統(tǒng)一語(yǔ)言JavaScript,系統(tǒng)架構(gòu)如圖1。

    3.1.2 ?模塊設(shè)計(jì)

    (1)首頁(yè)登錄

    首頁(yè)為平臺(tái)介紹信息,務(wù)必信息直觀明了。主頁(yè)主要展示平臺(tái)基本信息及登錄,且登錄位置明顯,用戶登錄后可執(zhí)行學(xué)習(xí)課程及查看個(gè)人信息等操作。首次登錄用戶,可在登錄界面直接跳轉(zhuǎn)到注冊(cè)頁(yè)面進(jìn)行注冊(cè)然后跳回登錄頁(yè)面進(jìn)行登錄。

    (2)課程模塊

    課程部分為平臺(tái)主題內(nèi)容。默認(rèn)展示課程內(nèi)容章節(jié)名稱,點(diǎn)擊章節(jié)名稱后展開對(duì)應(yīng)章節(jié)課程內(nèi)容,包括視頻、文檔、案例以及當(dāng)前章節(jié)對(duì)應(yīng)的學(xué)生提問(wèn)。當(dāng)完成一章學(xué)習(xí)內(nèi)容后,系統(tǒng)自動(dòng)給完成情況進(jìn)行評(píng)分并在個(gè)人信息里實(shí)時(shí)顯示當(dāng)前學(xué)習(xí)進(jìn)度。

    (3)學(xué)生個(gè)人中心

    在學(xué)生個(gè)人中心可以對(duì)部分個(gè)人信息進(jìn)行修改,也可以看到當(dāng)前的學(xué)習(xí)進(jìn)度、課程得分情況、提問(wèn)的回復(fù)內(nèi)容以及教師和系統(tǒng)的通知。

    (4)教師后臺(tái)管理

    教師或管理員可以在教師后臺(tái)管理里進(jìn)行課程的修改、添加、刪除等操作以及查看所有或特定學(xué)生的課程完成情況及課程分?jǐn)?shù)。還可以對(duì)所有學(xué)生或特定進(jìn)行發(fā)送通知或提醒。

    3.2 ?詳細(xì)設(shè)計(jì)

    用戶進(jìn)入首頁(yè)必須進(jìn)行登錄,無(wú)賬號(hào)則需要先進(jìn)行注冊(cè)然后登錄。當(dāng)用戶登錄后課程與個(gè)人中心開放,登錄用戶進(jìn)入課程主頁(yè)后可以在頁(yè)面左側(cè)看到當(dāng)前課程的所有章節(jié),點(diǎn)擊章節(jié)名稱后展開菜單內(nèi)出現(xiàn)視頻、課件、案例等選項(xiàng),選擇后頁(yè)面中間區(qū)域出現(xiàn)視頻播放區(qū)域或文檔展示區(qū)域。頁(yè)面右側(cè)展示當(dāng)前章節(jié)的所有提問(wèn)信息,登錄用戶可以對(duì)其中的問(wèn)題進(jìn)行查看和回復(fù)。登錄用戶進(jìn)入個(gè)人中心后可以查看個(gè)人詳細(xì)信息和修改部分信息,也可以查看自己的學(xué)習(xí)進(jìn)度和課程分?jǐn)?shù),另外也可以看到別人對(duì)自己提問(wèn)的解答或者對(duì)別人問(wèn)題的回復(fù)。也可以進(jìn)行查看系統(tǒng)通知或教師的課程通知。

    系統(tǒng)由Views、Controller、Data組成。Views部分采用ejs模板以實(shí)現(xiàn)視圖兼數(shù)據(jù)傳遞的作用,該部分發(fā)出請(qǐng)求經(jīng)由Controller處理后對(duì)Data中數(shù)據(jù)進(jìn)行修改或拉取。系統(tǒng)整體框架如下圖2。

    3.2.1 ?主模塊設(shè)計(jì)

    (1)注冊(cè)設(shè)計(jì)

    注冊(cè)信息包括:姓名,學(xué)號(hào),性別,電子郵件以此兩次確認(rèn)密碼。首先在瀏覽器端進(jìn)行基本格式校驗(yàn),然后以JSON格式傳回服務(wù)器與數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行比對(duì),如出現(xiàn)學(xué)號(hào)重復(fù)情況則返回錯(cuò)誤,提示進(jìn)行修改。注冊(cè)信息填寫無(wú)誤注冊(cè)成功后跳轉(zhuǎn)到登錄頁(yè)面提示用戶進(jìn)行登錄。

    (2)課程主頁(yè)設(shè)計(jì)

    章節(jié)名稱采用手風(fēng)琴模式進(jìn)行垂直排列,用戶點(diǎn)擊某一章節(jié)名稱后該章節(jié)展開并展示該章節(jié)的視頻和文檔,同時(shí)向服務(wù)器發(fā)送請(qǐng)求拉取本章節(jié)對(duì)應(yīng)的提問(wèn)內(nèi)容。用戶點(diǎn)擊視頻、文檔進(jìn)行觀看或?yàn)g覽后,系統(tǒng)根據(jù)用戶離開時(shí)間確定完成進(jìn)度然后發(fā)回服務(wù)器在數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。

    (3)個(gè)人中心設(shè)計(jì)

    點(diǎn)擊個(gè)人信息后向服務(wù)器發(fā)送請(qǐng)求返回?cái)?shù)據(jù)庫(kù)內(nèi)存儲(chǔ)的對(duì)應(yīng)個(gè)人數(shù)據(jù);點(diǎn)擊學(xué)習(xí)進(jìn)度后可以拉取視頻、文檔等詳細(xì)的進(jìn)度情況;系統(tǒng)通知模塊采用事件驅(qū)動(dòng)機(jī)制,待有通知發(fā)來(lái)后將通知進(jìn)行展示。

    4 ?自主學(xué)習(xí)平臺(tái)實(shí)現(xiàn)

    4.1 ?注冊(cè)登錄實(shí)現(xiàn)

    以HTML為基礎(chǔ)搭建了頁(yè)面基本框架,以CSS3進(jìn)行渲染。邏輯語(yǔ)言采用JavaScript,為簡(jiǎn)化書寫引入jQuery插件。為實(shí)現(xiàn)后期的響應(yīng)式頁(yè)面,頁(yè)面引入Bootstrap框架。為與Node.js進(jìn)行通訊html采用ejs

    模板。服務(wù)器為Node.js,數(shù)據(jù)庫(kù)為MySQL。系統(tǒng)采用前后端分離開發(fā)思想,但是以統(tǒng)一語(yǔ)言Java?Script進(jìn)行編寫,大大降低程序耦合難度。系統(tǒng)采用MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)時(shí)充分考慮程序處理的要求、應(yīng)用環(huán)境的需求,斟酌數(shù)據(jù)庫(kù)表結(jié)構(gòu)和字段設(shè)置,考慮數(shù)據(jù)庫(kù)各表中的字段類型和長(zhǎng)度,盡可能提前預(yù)估到可能出現(xiàn)的問(wèn)題,避免程序設(shè)計(jì)過(guò)程中帶來(lái)不必要的麻煩[6]??紤]到系統(tǒng)上傳Linux服務(wù)器后的MySQL數(shù)據(jù)庫(kù)對(duì)中文支持問(wèn)題,所以全部改為UTF-8編碼方式。

    4.1.1 ?注冊(cè)

    用戶輸入注冊(cè)信息點(diǎn)擊提交后,本地進(jìn)行基本格式驗(yàn)證通過(guò)后傳入服務(wù)端,服務(wù)的進(jìn)行校驗(yàn)合格后存入數(shù)據(jù)庫(kù)。注冊(cè)信息字段表如表1。

    系統(tǒng)獲取到用戶輸入信息后通過(guò)checkData()進(jìn)行基本校驗(yàn),驗(yàn)證通過(guò)后經(jīng)由Ajax發(fā)給服務(wù)器端進(jìn)行判斷。響應(yīng)返回status=‘success后注冊(cè)成功跳轉(zhuǎn)到登錄頁(yè)面,否則返回失敗信息,注冊(cè)失敗。

    4.1.2 ?登錄

    系統(tǒng)獲取到用戶登錄數(shù)據(jù)后通過(guò)Ajax發(fā)給服務(wù)器進(jìn)行校驗(yàn),校驗(yàn)成功后登錄成功。為避免用戶短時(shí)間退出重復(fù)登錄,系統(tǒng)通過(guò)Session設(shè)置了默認(rèn)保持登錄30分鐘。Session 機(jī)制采用的是一種在客戶端與服務(wù)器之間保持狀態(tài)的解決方案, 由于網(wǎng)頁(yè)是一種無(wú)狀態(tài)的連接程序,因此無(wú)法得知用戶的瀏覽狀態(tài)。通過(guò)Session記錄用戶的有關(guān)信息,以供用戶再次以此身份對(duì)Web服務(wù)器提供要求時(shí)作確認(rèn)[7]。部分關(guān)鍵代碼如下:

    if (result.type == 'success') {

    req.session.islogin = nbr; /*將用戶學(xué)號(hào)存入session*/

    req.session.username = result.name; /*將用戶姓名存入session*/

    res.json({status:1,name:result.name}); /*返回成功狀態(tài)碼1和姓名*/

    }else{

    res.json({status:0}); /*返回失敗狀態(tài)碼0*/

    };

    4.2 《網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)》課程主頁(yè)

    課程主頁(yè)由三列構(gòu)成,左側(cè)部分為課程章節(jié),中間部分為完成情況和視頻、文檔展示區(qū),右側(cè)為評(píng)論區(qū)。選擇左側(cè)章節(jié)后中間區(qū)域展示相應(yīng)文檔或視頻,右側(cè)評(píng)論區(qū)出現(xiàn)對(duì)應(yīng)章節(jié)的提問(wèn)及回復(fù)內(nèi)容。

    4.2.1 ?視頻、文檔模塊實(shí)現(xiàn)

    視頻播放未采用需另行安裝的繁瑣且安全性有爭(zhēng)議的flash插件。而是采用HTML5自帶

    由于瀏覽器不支持原生ppt,所以ppt轉(zhuǎn)化未PDF后進(jìn)行瀏覽,ViewerJS是一個(gè)非常棒的通用文檔查看器,它完全獨(dú)立不依賴其他服務(wù),所以對(duì)PDF的瀏覽采用ViewerJS插件,支持縮放、旋轉(zhuǎn)、打印等功能,滿足在線瀏覽需求。

    4.2.2 ?進(jìn)度獲取

    學(xué)習(xí)內(nèi)容完成情況用state表征,state為1表示該部分內(nèi)容完成,為0則表示未完成。數(shù)據(jù)庫(kù)表中設(shè)置fileDetail和videoDetail分別用于表示文檔和視頻的每章完成情況[9],fileRate和videoRate則根據(jù)文檔和視頻各自所占權(quán)重(由管理員確定)換算得到的分?jǐn)?shù),score為總體情況得分。詳細(xì)字段設(shè)置見表2。

    4.2.3 ?提問(wèn)部分

    本系統(tǒng)提問(wèn)部分所用數(shù)據(jù)庫(kù)表的一個(gè)特點(diǎn)是將提問(wèn)內(nèi)容與回復(fù)內(nèi)容置于一個(gè)表中,解決了嵌套表在數(shù)據(jù)龐大情況下的時(shí)效問(wèn)題,采用字段forWho區(qū)分提問(wèn)與回復(fù)很好的避免了兩者在一張表中容易出現(xiàn)的混亂問(wèn)題[10]。另一個(gè)特點(diǎn)是為解決各章節(jié)提問(wèn)內(nèi)容混雜的問(wèn)題,本系統(tǒng)將各個(gè)章節(jié)的提問(wèn)、回復(fù)在數(shù)據(jù)表中以u(píng)nit字段的設(shè)置加以區(qū)分。同時(shí)為保證系統(tǒng)加載速度,用戶選擇章節(jié)后系統(tǒng)只拉取該章節(jié)的提問(wèn)內(nèi)容,點(diǎn)擊問(wèn)題下的展開按鈕后系統(tǒng)拉取該問(wèn)題的評(píng)論部分。提問(wèn)內(nèi)容數(shù)據(jù)庫(kù)表結(jié)構(gòu)如表3。

    登錄用戶在提問(wèn)框內(nèi)輸入問(wèn)題后點(diǎn)擊提問(wèn),系統(tǒng)通過(guò)getTime()函數(shù)獲得提問(wèn)詳細(xì)時(shí)間和session內(nèi)姓名,與提問(wèn)內(nèi)容一起以JSON格式通過(guò)Ajax請(qǐng)求傳入Node服務(wù)器,服務(wù)器進(jìn)行接受處理后由MySQL儲(chǔ)存[11]。服務(wù)器發(fā)回成功響應(yīng)后,瀏覽器直接將該提問(wèn)渲染在頁(yè)面上。如果是初次打開頁(yè)面,則頁(yè)面先發(fā)送Ajax請(qǐng)求獲取所有當(dāng)前章節(jié)的提問(wèn)內(nèi)容進(jìn)行渲染展示。

    提問(wèn)實(shí)現(xiàn):

    (1)瀏覽器端事件監(jiān)聽(event)檢測(cè)到用戶提問(wèn)點(diǎn)擊事件,檢測(cè)用戶提問(wèn)內(nèi)容是否合法,通過(guò)后發(fā)起請(qǐng)求并攜帶數(shù)據(jù)如:提問(wèn)內(nèi)容、用戶信息、提問(wèn)單元、提問(wèn)類型。

    (2)瀏覽器端路由器(router)對(duì)數(shù)據(jù)進(jìn)行判斷,確定分發(fā)對(duì)象。

    (3)對(duì)應(yīng)處理對(duì)象(handle)接收請(qǐng)求,調(diào)用對(duì)象方法進(jìn)行處理。

    (4)相應(yīng)的操作方法(operate)接收請(qǐng)求,格式數(shù)據(jù)、拆分?jǐn)?shù)據(jù)、字段檢測(cè)等完成后調(diào)用Node的MySQL數(shù)據(jù)庫(kù)中間件。

    (5)數(shù)據(jù)庫(kù)中間件(connect)接收請(qǐng)求,讀取數(shù)據(jù),插入MySQL數(shù)據(jù)庫(kù),返回插入結(jié)果狀態(tài)信息[12]。

    以上5步完成了由用戶數(shù)據(jù)請(qǐng)求經(jīng)由服務(wù)端處理存入數(shù)據(jù)庫(kù)的操作,步驟(5)完成后,開始逆向返回響應(yīng),在響應(yīng)經(jīng)過(guò)的每一步驟中都會(huì)對(duì)響應(yīng)進(jìn)行封裝、轉(zhuǎn)化等處理,最終發(fā)回(1)步驟中的事件監(jiān)聽。如果最終返回成功響應(yīng)狀態(tài)則會(huì)伴隨數(shù)據(jù)返回,事件監(jiān)聽將會(huì)將數(shù)據(jù)傳入DOM,然后瀏覽器進(jìn)行頁(yè)面渲染;若最終返回失敗響應(yīng)狀態(tài)則會(huì)伴隨失敗日志返回,而錯(cuò)誤會(huì)在響應(yīng)返回過(guò)程中逐步解決,返回事件監(jiān)聽的仍是具體的響應(yīng)結(jié)果,同樣瀏覽器進(jìn)行頁(yè)面渲染,至此完整的提問(wèn)過(guò)程。

    4.3 ?管理員系統(tǒng)

    管理員系統(tǒng)不同于普通用戶系統(tǒng),是一個(gè)獨(dú)立的系統(tǒng)??梢圆榭磳W(xué)生完成進(jìn)度、對(duì)用戶信息進(jìn)行管理操作、添加課程、發(fā)布廣播等功能。

    5 ?結(jié)語(yǔ)

    本文在對(duì)傳統(tǒng)Web開發(fā)中采用的前后端分離的基礎(chǔ)上,提出采用Node.js作為后端服務(wù)器語(yǔ)言以達(dá)到前后端語(yǔ)言統(tǒng)一的目的,從而提高開發(fā)效率,提升了代碼靈活性,為小型團(tuán)隊(duì)或個(gè)人開發(fā)Web項(xiàng)目提供了參考思路。并且在此基礎(chǔ)上實(shí)現(xiàn)了一個(gè)網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)自主學(xué)習(xí)平臺(tái)的搭建作為該思路可行性的校驗(yàn)依據(jù)。該平臺(tái)以現(xiàn)代瀏覽器為前端執(zhí)行環(huán)境,提供在線觀看視頻、瀏覽文檔、實(shí)時(shí)提問(wèn)、后臺(tái)管理等功能。系統(tǒng)采用B/S架構(gòu),后端程序在Node服務(wù)器中運(yùn)行。后臺(tái)添加課程后,用戶經(jīng)注冊(cè)可以達(dá)到在線學(xué)習(xí)的目的,并可以進(jìn)行實(shí)時(shí)提問(wèn)輔助自學(xué)過(guò)程。方便簡(jiǎn)潔的后臺(tái)管理系統(tǒng)可以讓管理員及時(shí)形象地了解所有用戶實(shí)時(shí)學(xué)習(xí)情況,并且可以對(duì)整個(gè)系統(tǒng)及用戶進(jìn)行實(shí)時(shí)管理。該學(xué)習(xí)系統(tǒng)獨(dú)立完整,只需聯(lián)網(wǎng)的瀏覽器即可完成用戶在線、管理后臺(tái)實(shí)時(shí)查看,滿足當(dāng)今社會(huì)碎片化時(shí)間和快節(jié)奏需求。另外,得意于Node.js的通用性,該項(xiàng)目可直接轉(zhuǎn)移到Linux服務(wù)器端后配置MySQL可直接運(yùn)行。

    由于時(shí)間、能力等原因系統(tǒng)無(wú)法保證十分完美,但是基本框架已經(jīng)確立,接下來(lái)的主要工作是對(duì)系統(tǒng)進(jìn)行優(yōu)化。當(dāng)然也有需要繼續(xù)增強(qiáng)或者修改調(diào)整的模塊,比如后臺(tái)系統(tǒng)的添加課程、發(fā)布廣播等功能亟待解決。完善的系統(tǒng)需要不斷地進(jìn)行優(yōu)化,完美的模式也需要不斷的進(jìn)行修正。學(xué)習(xí)之路漫長(zhǎng)而崎嶇,需要不斷地堅(jiān)持與探索,“路漫漫其修遠(yuǎn)兮,吾將上下而求索”。

    參考文獻(xiàn)

    [1] 李俊受. 中國(guó)和韓國(guó)移動(dòng)互聯(lián)網(wǎng)發(fā)展的比較研究[D]. 北京郵電大學(xué), 010

    [2] 白璐, 翟高壽. 基于驅(qū)動(dòng)代碼分離的設(shè)備驅(qū)動(dòng)體系結(jié)構(gòu)的研究[J]. 軟件, 2015, 36(1): 17-21

    [3] (美)溫施耐德. (Wandschneider, M. )Learning Node. js: A Hands-On Guide to Building Web Applications in JavaScript 姚立, 彭森材譯. 機(jī)械工業(yè)出版社. 2014

    [4] 趙宏, 陳麗, 鄭勤華, 張善實(shí). 成人遠(yuǎn)程學(xué)習(xí)者自主學(xué)習(xí)能力培養(yǎng)的教學(xué)模式探究[J]. 中國(guó)電化教育, 2014(06): 37-41+48

    [5] 夏鳳龍, 王菲菲. 高校網(wǎng)絡(luò)自主學(xué)習(xí)平臺(tái)建設(shè)的探索與思考[J]. 無(wú)線互聯(lián)科技, 2016(05): 23-24

    [6] 繆亞波, 趙軼群. 一種針對(duì)復(fù)雜交互界面應(yīng)用的Web開發(fā)框架[J]. 計(jì)算機(jī)應(yīng)用, 2004(02): 154-156+160

    [7] 郭彥輝. 響應(yīng)式 Web 設(shè)計(jì)的研究與實(shí)現(xiàn)[J]. 軟件, 2018, 39(1): 169-172

    [8] 柳麗娜. 淺淡Session機(jī)制與Cookie機(jī)制[J]. 電腦編程技巧與維護(hù), 2008(16): 28-29

    [9] 彭金勝. 一種新型的Web國(guó)際化解決思路及實(shí)踐[J]. 軟件, 2018, 39(7): 143-145

    [10] 劉翔宇, 朱大明. Arcgis中基于Python的地理數(shù)據(jù)庫(kù)批量合并方法研究[J]. 軟件, 2018, 39(7): 161-165

    [11] 朱東紅, 吳東麗, 郭劍, 等. 氣象自動(dòng)觀測(cè)集成平臺(tái)設(shè)計(jì)[J]. 軟件, 2018, 39(7): 182-190

    [12] 王芳, 蔡沂. 基于生成樹的學(xué)生互校驗(yàn)簽到應(yīng)用研究[J]. 軟件, 2018, 39(7): 06-11

    又大又爽又粗| 美女福利国产在线| 午夜久久久在线观看| 国产99久久九九免费精品| 亚洲自偷自拍图片 自拍| 一二三四在线观看免费中文在| 久久久精品区二区三区| 啦啦啦免费观看视频1| 国产精品九九99| 亚洲精品自拍成人| 国产激情久久老熟女| 免费一级毛片在线播放高清视频 | 岛国在线观看网站| 女人高潮潮喷娇喘18禁视频| 午夜福利免费观看在线| 嫁个100分男人电影在线观看| 欧美另类亚洲清纯唯美| 丰满少妇做爰视频| 精品亚洲乱码少妇综合久久| 亚洲国产日韩一区二区| 麻豆国产av国片精品| 国产亚洲午夜精品一区二区久久| 欧美精品啪啪一区二区三区 | 久久精品成人免费网站| 狂野欧美激情性xxxx| 中文字幕av电影在线播放| 久久国产精品影院| 人人妻,人人澡人人爽秒播| videos熟女内射| 日本黄色日本黄色录像| 欧美精品一区二区免费开放| 狂野欧美激情性xxxx| 国产精品欧美亚洲77777| 91大片在线观看| 中文字幕最新亚洲高清| 老司机亚洲免费影院| 亚洲精品国产av蜜桃| 91麻豆精品激情在线观看国产 | 99热全是精品| 少妇被粗大的猛进出69影院| 亚洲一区二区三区欧美精品| 国产97色在线日韩免费| 国产片内射在线| 两性午夜刺激爽爽歪歪视频在线观看 | 久久精品久久久久久噜噜老黄| 亚洲国产欧美一区二区综合| 亚洲av欧美aⅴ国产| 欧美精品一区二区大全| 成年人免费黄色播放视频| 国产一卡二卡三卡精品| 国产xxxxx性猛交| 国产在线观看jvid| 国产伦理片在线播放av一区| 国产免费av片在线观看野外av| 久久久久久人人人人人| 每晚都被弄得嗷嗷叫到高潮| 老熟女久久久| 欧美激情 高清一区二区三区| 国产福利在线免费观看视频| 2018国产大陆天天弄谢| 在线十欧美十亚洲十日本专区| 男人舔女人的私密视频| 日韩,欧美,国产一区二区三区| 一区二区三区精品91| 亚洲欧洲精品一区二区精品久久久| 一本大道久久a久久精品| 老司机靠b影院| 久久久欧美国产精品| 久久人妻熟女aⅴ| 日韩制服骚丝袜av| 国产精品亚洲美女久久久| 天天躁夜夜躁狠狠躁躁| 国产高清视频在线观看网站| 午夜福利在线观看吧| 欧美中文日本在线观看视频| 欧美激情久久久久久爽电影| 1024香蕉在线观看| 桃红色精品国产亚洲av| 欧美一级a爱片免费观看看 | 狂野欧美白嫩少妇大欣赏| 中文字幕最新亚洲高清| 久久 成人 亚洲| 精品久久久久久久人妻蜜臀av| 国产人伦9x9x在线观看| 黑人欧美特级aaaaaa片| 国产又黄又爽又无遮挡在线| 免费观看精品视频网站| 好看av亚洲va欧美ⅴa在| 日日摸夜夜添夜夜添小说| 嫩草影院精品99| 精品久久久久久久毛片微露脸| 久久久国产精品麻豆| 欧美日韩亚洲综合一区二区三区_| 丝袜美腿诱惑在线| 亚洲国产欧美一区二区综合| svipshipincom国产片| 欧美不卡视频在线免费观看 | 一本一本综合久久| 黄色毛片三级朝国网站| 女人高潮潮喷娇喘18禁视频| 国产成人精品无人区| 精品久久蜜臀av无| 欧美日韩瑟瑟在线播放| 他把我摸到了高潮在线观看| 午夜精品在线福利| 中文字幕久久专区| av天堂在线播放| 色综合站精品国产| 国产av又大| 日韩大尺度精品在线看网址| 又粗又爽又猛毛片免费看| 九色成人免费人妻av| 一进一出抽搐动态| 99国产精品99久久久久| 婷婷精品国产亚洲av在线| 国产亚洲欧美在线一区二区| 免费在线观看黄色视频的| 久久 成人 亚洲| 999久久久国产精品视频| 久久久久久久午夜电影| 免费看日本二区| 亚洲av片天天在线观看| 成人三级黄色视频| a级毛片在线看网站| 国产久久久一区二区三区| 亚洲在线自拍视频| 国产亚洲精品久久久久久毛片| 亚洲精品美女久久久久99蜜臀| 天堂√8在线中文| 欧美成狂野欧美在线观看| 天堂影院成人在线观看| 三级国产精品欧美在线观看 | 午夜福利在线观看吧| 国产人伦9x9x在线观看| 妹子高潮喷水视频| 午夜福利免费观看在线| 欧美一级毛片孕妇| 久久国产精品影院| 久久久国产精品麻豆| 午夜激情福利司机影院| 欧美日韩瑟瑟在线播放| 男女床上黄色一级片免费看| 老司机午夜十八禁免费视频| 亚洲va日本ⅴa欧美va伊人久久| 国产一区二区在线观看日韩 | 伊人久久大香线蕉亚洲五| 亚洲熟妇熟女久久| 亚洲第一欧美日韩一区二区三区| 国产精品98久久久久久宅男小说| 亚洲精品美女久久av网站| 成人av在线播放网站| 日日爽夜夜爽网站| 亚洲成人中文字幕在线播放| 一本久久中文字幕| 精品久久久久久久人妻蜜臀av| 99国产极品粉嫩在线观看| 舔av片在线| 最新在线观看一区二区三区| 老司机在亚洲福利影院| 男女床上黄色一级片免费看| 欧美黄色淫秽网站| 日本成人三级电影网站| АⅤ资源中文在线天堂| 国产v大片淫在线免费观看| 成人国产综合亚洲| 久久精品国产清高在天天线| 亚洲人与动物交配视频| 欧美激情久久久久久爽电影| 国产午夜精品久久久久久| 久久这里只有精品19| 色综合婷婷激情| 欧美av亚洲av综合av国产av| 又大又爽又粗| 一区二区三区国产精品乱码| 欧美在线黄色| 亚洲欧美日韩高清专用| 欧美乱码精品一区二区三区| 99久久精品热视频| aaaaa片日本免费| 欧美乱色亚洲激情| 少妇被粗大的猛进出69影院| 精品无人区乱码1区二区| 一本大道久久a久久精品| 日韩欧美一区二区三区在线观看| 国产成人aa在线观看| 国产亚洲精品av在线| 国产精品久久久av美女十八| 欧美色视频一区免费| 伦理电影免费视频| 看黄色毛片网站| 特大巨黑吊av在线直播| 日韩有码中文字幕| www.熟女人妻精品国产| 99久久99久久久精品蜜桃| 国产精品久久久久久久电影 | 不卡一级毛片| 男女下面进入的视频免费午夜| 欧美黑人欧美精品刺激| 最近最新中文字幕大全免费视频| av福利片在线| 亚洲第一电影网av| 99国产精品一区二区三区| 又粗又爽又猛毛片免费看| 天堂动漫精品| 国产精品 国内视频| 99久久精品国产亚洲精品| 国产成人av激情在线播放| 少妇熟女aⅴ在线视频| 精品人妻1区二区| 久久久水蜜桃国产精品网| 又大又爽又粗| 黑人操中国人逼视频| 精华霜和精华液先用哪个| 久久久久久久精品吃奶| 一级毛片高清免费大全| 亚洲自拍偷在线| 欧美日韩亚洲综合一区二区三区_| 欧洲精品卡2卡3卡4卡5卡区| ponron亚洲| 亚洲欧美一区二区三区黑人| 国内精品久久久久精免费| 国产av在哪里看| 亚洲精华国产精华精| 亚洲精品av麻豆狂野| 色在线成人网| 国产麻豆成人av免费视频| 久久精品亚洲精品国产色婷小说| 免费在线观看完整版高清| 亚洲人成伊人成综合网2020| 亚洲中文字幕日韩| 男女之事视频高清在线观看| 看免费av毛片| 日本 av在线| 国产欧美日韩一区二区精品| 成年版毛片免费区| 成在线人永久免费视频| 久久国产精品人妻蜜桃| 黑人操中国人逼视频| 在线视频色国产色| 久久久久性生活片| 亚洲一区二区三区色噜噜| 亚洲狠狠婷婷综合久久图片| 久久伊人香网站| 成人特级黄色片久久久久久久| 久久久久久大精品| 国产av一区在线观看免费| 老熟妇仑乱视频hdxx| 国产黄色小视频在线观看| 欧美久久黑人一区二区| 欧美av亚洲av综合av国产av| 欧美成狂野欧美在线观看| 99国产精品一区二区三区| 岛国视频午夜一区免费看| aaaaa片日本免费| 国产亚洲av高清不卡| 亚洲av日韩精品久久久久久密| 精品日产1卡2卡| 国产一级毛片七仙女欲春2| 十八禁网站免费在线| 嫁个100分男人电影在线观看| 亚洲国产精品sss在线观看| 午夜a级毛片| 欧美zozozo另类| 久久久久九九精品影院| 久久香蕉激情| 黄色片一级片一级黄色片| 亚洲欧美激情综合另类| 99久久国产精品久久久| 麻豆国产av国片精品| 欧美色视频一区免费| 精品第一国产精品| 久久久久免费精品人妻一区二区| 日本黄色视频三级网站网址| 亚洲av日韩精品久久久久久密| 日本在线视频免费播放| 久久人人精品亚洲av| 青草久久国产| 黄色成人免费大全| 老鸭窝网址在线观看| 91九色精品人成在线观看| 99热只有精品国产| 国产精品永久免费网站| 男女下面进入的视频免费午夜| 精品一区二区三区四区五区乱码| 国产一级毛片七仙女欲春2| 人成视频在线观看免费观看| 成人高潮视频无遮挡免费网站| 欧美日韩中文字幕国产精品一区二区三区| 精品国产乱子伦一区二区三区| 日韩 欧美 亚洲 中文字幕| 国产成人aa在线观看| 中文亚洲av片在线观看爽| 男女之事视频高清在线观看| 好看av亚洲va欧美ⅴa在| 亚洲熟妇熟女久久| 国产成人av激情在线播放| 日本 av在线| e午夜精品久久久久久久| 妹子高潮喷水视频| 久久久久九九精品影院| 熟妇人妻久久中文字幕3abv| 国产精品,欧美在线| 制服诱惑二区| 欧美大码av| 悠悠久久av| 久久久久亚洲av毛片大全| 国产野战对白在线观看| av在线播放免费不卡| 久久精品国产亚洲av高清一级| 日本精品一区二区三区蜜桃| 亚洲狠狠婷婷综合久久图片| 亚洲人成伊人成综合网2020| 亚洲av片天天在线观看| av天堂在线播放| 国产亚洲精品久久久久5区| 亚洲欧美精品综合久久99| 激情在线观看视频在线高清| 99久久精品热视频| 最近在线观看免费完整版| 一区二区三区国产精品乱码| 午夜福利18| 岛国在线免费视频观看| 亚洲国产精品久久男人天堂| 精品国产超薄肉色丝袜足j| 久久久久久大精品| 夜夜夜夜夜久久久久| 欧美精品亚洲一区二区| 亚洲av成人av| bbb黄色大片| 婷婷亚洲欧美| 国产亚洲欧美在线一区二区| 日日爽夜夜爽网站| 久久香蕉国产精品| 免费一级毛片在线播放高清视频| 天堂动漫精品| 亚洲欧美日韩高清在线视频| 黄片小视频在线播放| 色av中文字幕| 亚洲成人中文字幕在线播放| 国产v大片淫在线免费观看| 国产午夜福利久久久久久| 亚洲av电影在线进入| 很黄的视频免费| 欧美性长视频在线观看| 欧美成人午夜精品| 午夜免费成人在线视频| 最好的美女福利视频网| 婷婷六月久久综合丁香| 亚洲av成人av| 禁无遮挡网站| 又爽又黄无遮挡网站| 国产精品一区二区免费欧美| www日本在线高清视频| 村上凉子中文字幕在线| 香蕉丝袜av| 老司机午夜福利在线观看视频| 777久久人妻少妇嫩草av网站| 天堂动漫精品| 夜夜夜夜夜久久久久| 777久久人妻少妇嫩草av网站| 国产欧美日韩精品亚洲av| 欧美黄色淫秽网站| 欧美精品亚洲一区二区| 岛国视频午夜一区免费看| aaaaa片日本免费| av免费在线观看网站| www.999成人在线观看| 午夜激情福利司机影院| 老司机在亚洲福利影院| 亚洲熟妇熟女久久| 欧美日韩亚洲国产一区二区在线观看| 久久久久久免费高清国产稀缺| 亚洲七黄色美女视频| 欧美绝顶高潮抽搐喷水| 国产黄色小视频在线观看| 一本综合久久免费| 香蕉丝袜av| 香蕉久久夜色| 亚洲av第一区精品v没综合| 国产精品亚洲美女久久久| 久久中文字幕人妻熟女| 最近最新中文字幕大全电影3| 国产三级在线视频| av片东京热男人的天堂| 一级毛片精品| 亚洲美女黄片视频| 日韩三级视频一区二区三区| 国产区一区二久久| 看免费av毛片| 一边摸一边做爽爽视频免费| 波多野结衣高清无吗| 变态另类丝袜制服| 欧美色视频一区免费| 久久久精品大字幕| 国产精品综合久久久久久久免费| 国产精品,欧美在线| 麻豆国产av国片精品| 亚洲最大成人中文| 九色成人免费人妻av| 熟女少妇亚洲综合色aaa.| 日韩免费av在线播放| 亚洲av熟女| 精品国内亚洲2022精品成人| 国产一区在线观看成人免费| 国产av又大| 岛国在线观看网站| 亚洲熟妇中文字幕五十中出| 婷婷丁香在线五月| 亚洲一区二区三区色噜噜| 国产伦人伦偷精品视频| 国产精品一区二区免费欧美| 日韩欧美精品v在线| 久久九九热精品免费| 不卡av一区二区三区| 欧美日韩中文字幕国产精品一区二区三区| 亚洲国产欧美网| 久久中文字幕人妻熟女| www日本在线高清视频| 人成视频在线观看免费观看| 黑人巨大精品欧美一区二区mp4| 50天的宝宝边吃奶边哭怎么回事| 精华霜和精华液先用哪个| 99热6这里只有精品| 精品福利观看| 亚洲熟妇熟女久久| 精品久久久久久久久久久久久| 亚洲一区二区三区不卡视频| 日韩精品青青久久久久久| 俄罗斯特黄特色一大片| 首页视频小说图片口味搜索| 国产亚洲精品一区二区www| 午夜影院日韩av| 日日干狠狠操夜夜爽| 日本一本二区三区精品| 亚洲国产精品999在线| 国产精华一区二区三区| 久久久久国产精品人妻aⅴ院| 亚洲av第一区精品v没综合| 亚洲av五月六月丁香网| 久久九九热精品免费| 亚洲专区中文字幕在线| 少妇的丰满在线观看| 精华霜和精华液先用哪个| 成人18禁在线播放| 亚洲精品美女久久av网站| 黄色毛片三级朝国网站| 搡老妇女老女人老熟妇| 中文亚洲av片在线观看爽| 一级作爱视频免费观看| 日韩欧美国产一区二区入口| 亚洲第一欧美日韩一区二区三区| 1024香蕉在线观看| 一区二区三区国产精品乱码| av视频在线观看入口| 日本成人三级电影网站| 日本一区二区免费在线视频| 精品久久久久久,| 亚洲avbb在线观看| 黄片小视频在线播放| 亚洲av中文字字幕乱码综合| 午夜亚洲福利在线播放| 国产亚洲精品久久久久久毛片| 精品熟女少妇八av免费久了| av天堂在线播放| 欧美日韩亚洲国产一区二区在线观看| 久久九九热精品免费| 国产精品久久久久久亚洲av鲁大| 麻豆av在线久日| 日韩欧美国产在线观看| 波多野结衣巨乳人妻| 国产在线观看jvid| 免费在线观看亚洲国产| 可以在线观看毛片的网站| 精品乱码久久久久久99久播| 黄色片一级片一级黄色片| 亚洲一区二区三区色噜噜| 狠狠狠狠99中文字幕| 欧美乱码精品一区二区三区| 国产欧美日韩一区二区三| 成人亚洲精品av一区二区| 久久精品人妻少妇| xxxwww97欧美| 女人高潮潮喷娇喘18禁视频| 国产av一区在线观看免费| 精华霜和精华液先用哪个| 久久人妻av系列| 久久精品综合一区二区三区| 丁香六月欧美| 亚洲av熟女| 亚洲欧美日韩东京热| 久久性视频一级片| 又黄又爽又免费观看的视频| 真人一进一出gif抽搐免费| 午夜影院日韩av| 国产成人一区二区三区免费视频网站| 日本五十路高清| 久久亚洲真实| 怎么达到女性高潮| 久久欧美精品欧美久久欧美| 精品国产美女av久久久久小说| 午夜福利视频1000在线观看| 午夜成年电影在线免费观看| 国产成人精品久久二区二区免费| 亚洲乱码一区二区免费版| 亚洲黑人精品在线| 国产精品 欧美亚洲| 变态另类成人亚洲欧美熟女| 性色av乱码一区二区三区2| 校园春色视频在线观看| av天堂在线播放| 欧美性猛交黑人性爽| 国产激情偷乱视频一区二区| 久久久水蜜桃国产精品网| www.熟女人妻精品国产| 国产欧美日韩一区二区三| 久久伊人香网站| 男人舔女人的私密视频| 亚洲欧美日韩高清专用| 久久久久久免费高清国产稀缺| 成人午夜高清在线视频| 色老头精品视频在线观看| 免费观看人在逋| 亚洲第一欧美日韩一区二区三区| 国产精品影院久久| 午夜激情福利司机影院| 国产精品国产高清国产av| 香蕉国产在线看| 欧美日本亚洲视频在线播放| 久久久国产成人精品二区| 国产私拍福利视频在线观看| 成人亚洲精品av一区二区| 床上黄色一级片| 欧美不卡视频在线免费观看 | 老司机午夜福利在线观看视频| 成人三级黄色视频| 怎么达到女性高潮| 欧美黑人精品巨大| av片东京热男人的天堂| 97人妻精品一区二区三区麻豆| 变态另类丝袜制服| 99精品久久久久人妻精品| av片东京热男人的天堂| 亚洲 欧美 日韩 在线 免费| 国产成人一区二区三区免费视频网站| av免费在线观看网站| 一个人免费在线观看电影 | 欧美中文日本在线观看视频| 18禁黄网站禁片免费观看直播| 一级作爱视频免费观看| 老司机靠b影院| av片东京热男人的天堂| 波多野结衣高清无吗| 国产av又大| 国产乱人伦免费视频| 国产精品久久视频播放| 看片在线看免费视频| 在线观看美女被高潮喷水网站 | 免费在线观看影片大全网站| 国产成人欧美在线观看| 哪里可以看免费的av片| 在线国产一区二区在线| 这个男人来自地球电影免费观看| 成年版毛片免费区| 亚洲人成伊人成综合网2020| 黄片小视频在线播放| 免费观看精品视频网站| 亚洲国产欧美一区二区综合| 亚洲真实伦在线观看| 精品久久久久久久久久久久久| www.999成人在线观看| 老熟妇乱子伦视频在线观看| 亚洲人成伊人成综合网2020| 在线免费观看的www视频| 国产99久久九九免费精品| 亚洲精品中文字幕一二三四区| 国产爱豆传媒在线观看 | 亚洲精品美女久久久久99蜜臀| 成人国产综合亚洲| 亚洲av电影在线进入| 久久精品91蜜桃| 成人三级做爰电影| 麻豆国产97在线/欧美 | 久久天堂一区二区三区四区| 久久久久免费精品人妻一区二区| 狠狠狠狠99中文字幕| 亚洲 国产 在线| 最新美女视频免费是黄的| 九色成人免费人妻av| 久久国产精品影院| 欧美黄色淫秽网站| 免费电影在线观看免费观看| 天天一区二区日本电影三级| 一本久久中文字幕| 久久久久久人人人人人| 天堂影院成人在线观看| 久久精品国产亚洲av高清一级| 国产精品综合久久久久久久免费| 99久久国产精品久久久| 国产精品,欧美在线| 亚洲国产精品合色在线| 国产成人av教育| 少妇人妻一区二区三区视频| 美女 人体艺术 gogo| 亚洲精品在线观看二区| 高潮久久久久久久久久久不卡| cao死你这个sao货| 欧美又色又爽又黄视频| 精品久久久久久成人av| 俄罗斯特黄特色一大片| 一进一出抽搐gif免费好疼| 丰满人妻熟妇乱又伦精品不卡| 亚洲,欧美精品.| 白带黄色成豆腐渣| 国产区一区二久久| 深夜精品福利|