? ? 由于Web技術(shù)日新月異,網(wǎng)站的前端也處在不斷的變化之中, 各種各樣的網(wǎng)頁趨于多元化,導(dǎo)致網(wǎng)頁的制作難度在加大,已經(jīng)逐漸地演變成了一門網(wǎng)頁前端開發(fā)的獨(dú)立技術(shù)。企業(yè)網(wǎng)站開發(fā)如何提供給用戶一個(gè)良好的體驗(yàn)?zāi)兀?/span>
一、前端開發(fā)的三種技術(shù)
1、HTML
? ? HTML 只是標(biāo)準(zhǔn)通用標(biāo)記語言其中一個(gè)應(yīng)用,它對(duì)標(biāo)準(zhǔn)通用語言來說具有規(guī)范性。瀏覽器網(wǎng)頁的文本結(jié)構(gòu)內(nèi)容的顯示是 HTML 提供的標(biāo)記文本,是 WEB 編程的基礎(chǔ)。瀏覽器顯示網(wǎng)頁是按照標(biāo)記符一定的順序和設(shè)置好的規(guī)則下出現(xiàn)內(nèi)容。所以企業(yè)網(wǎng)站開發(fā)第一步就是運(yùn)用 HTML 建設(shè)布局合理的框架, 而且要與當(dāng)前的瀏覽器兼容。當(dāng)然企業(yè)網(wǎng)站開發(fā)只利用 HTML 技術(shù)是不行的,這時(shí)的網(wǎng)頁是不具備企業(yè)網(wǎng)站的可用性,還需要用到 CSS 語言進(jìn)一步優(yōu)化網(wǎng)頁的可用性。
2、CSS
? ? 層疊樣式(CSS)與 HTML 一樣是一種樣式語言,HTML 是一種網(wǎng)頁標(biāo)準(zhǔn)性樣式語言,CSS 是一種網(wǎng)頁描述性樣式語言。CSS 可以把網(wǎng)頁的數(shù)據(jù)和樣式兩種信息拆分而使得瀏覽器呈現(xiàn)網(wǎng)頁的信息達(dá)到最強(qiáng)化,它可以提供多種文檔的樣式外觀, 為一些元素和文本進(jìn)行改造,修改頁面字體的顏色,增強(qiáng)了HTML 中的重要內(nèi)容標(biāo)記。雖然說運(yùn)用 CSS 和 HTML 兩種技術(shù)制作出來的網(wǎng)頁在外觀和功能已經(jīng)達(dá)到了可用性的要求,也可以滿足用戶對(duì)企業(yè)網(wǎng)頁的瀏覽需求,但是還有兩個(gè)問題需要注意。第一,CSS 在如今互聯(lián)網(wǎng)市場(chǎng)上的不同瀏覽器中或者同一個(gè)瀏覽器不同的版本中顯示有很大的差別,因?yàn)闉g覽器的核心設(shè)計(jì)和對(duì)網(wǎng)頁支持力度不同,有時(shí)候會(huì)有一些瀏覽器對(duì)網(wǎng)頁的本質(zhì)內(nèi)容顯示不出來,所以在編寫 CSS 時(shí)候需要考慮各種瀏覽器的兼容性問題。第二,這時(shí)候的網(wǎng)頁還處于靜態(tài),有瀏覽性但是不能交互數(shù)據(jù),還需要用到 JavaScript 技術(shù)。
3、JavaScript
? ? JavaScript 簡(jiǎn)稱 JS,JavaScript 作為一種語言,隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的進(jìn)步,JS 已經(jīng)發(fā)展成為了一門全面且完善的直譯式腳本語言。JavaScript 的解釋器已經(jīng)作為各種瀏覽器的必須品,被人稱為 JavaScript 引擎,主要是在用戶端運(yùn)用。之所以時(shí)候 JavaScript 已經(jīng)發(fā)展的非常完善,是因?yàn)樗诰W(wǎng)站開發(fā)建設(shè)中應(yīng)用非常廣泛,可以處理各種復(fù)雜的計(jì)算問題,也有瀏覽器與 Web 服務(wù)器之間的交互功能,而且還可以是動(dòng)態(tài)性的交互,它在服務(wù)端的作用也隨著技術(shù)的發(fā)展逐漸顯現(xiàn)出來了。JavaScript 與 HTML 之間的交互可以達(dá)到頁面行為與樣式間的松散耦合效果,當(dāng)瀏覽器有某種交互動(dòng)作時(shí),通過監(jiān)聽器的使用,綁定了特定元素的處理程序,這時(shí)候就會(huì)有觸發(fā)后的相應(yīng)處理函數(shù)來執(zhí)行任務(wù)。
二、前后分離 MVC 模式的 Web 開發(fā)
1、劃分前后端
? ? 視圖層(V)是頁面的搭建,顯示各種數(shù)據(jù),劃分為前端; 模型層(M)是存儲(chǔ)各種數(shù)據(jù)和處理不同的業(yè)務(wù)邏輯,劃分為后端。最關(guān)鍵是控制層的劃分,因?yàn)檫@關(guān)系到前后耦合問題的處理??刂茖樱–)是具備轉(zhuǎn)發(fā)和處理請(qǐng)求的功能,它是一個(gè)信息的調(diào)配處理器,解析客戶端的請(qǐng)求內(nèi)容并把此內(nèi)容發(fā)送給某個(gè)服務(wù)端,服務(wù)端得到內(nèi)容在模型層處理后,反饋內(nèi)容給控制層,再由此給客戶端發(fā)送正確的網(wǎng)頁頁面。雖然說控制層和模型層的交流比較簡(jiǎn)單,用來進(jìn)行數(shù)據(jù)交互。從控制層的作用來看,它是數(shù)據(jù)的交互和調(diào)度地方,沒有業(yè)務(wù)邏輯,所以把控制層劃分到前端比較合理。
2、實(shí)現(xiàn)前后分離
? ? 大多數(shù)門戶網(wǎng)站開發(fā)建設(shè)中將 Node.js 作為中間層,利用 Express 開發(fā)企業(yè)網(wǎng)站。用戶訪問企業(yè)網(wǎng)站的門戶時(shí),服務(wù)端進(jìn)行判定且響應(yīng)。如果頁面需要?jiǎng)討B(tài)型的數(shù)據(jù),Node 會(huì)把用戶id 作為請(qǐng)求的參數(shù)發(fā)送給后端的接口,后端接受請(qǐng)求處理后以 JSON 的形式返還給 Node 層。數(shù)據(jù)傳達(dá)到 Node 層后,運(yùn)用函數(shù)回調(diào)渲染相應(yīng)的頁面,這些獲取的數(shù)據(jù)會(huì)注入到 EJS 模板, 將 JSON 數(shù)據(jù)轉(zhuǎn)換成 HTML,最終將文件顯示在瀏覽器里,這時(shí)用戶就可以看到。
3、復(fù)用前后分離的數(shù)據(jù)
? ? 前后分離模式的應(yīng)用,它有一個(gè)優(yōu)勢(shì)就是后端的數(shù)據(jù)使用性非常強(qiáng)。舉個(gè)例子,我們今天查詢天氣預(yù)報(bào)非常方便,不過天氣預(yù)報(bào)的查詢功能調(diào)用的是外部接口,用戶發(fā)送請(qǐng)求某個(gè)城市的天氣情況請(qǐng)求,前臺(tái)獲取請(qǐng)求參數(shù),運(yùn)用 AJAX 技術(shù)向 Node 層發(fā)出請(qǐng)求,由 Node 層發(fā)送二次請(qǐng)求給天氣預(yù)報(bào)接口, 然后天氣預(yù)報(bào)接口響應(yīng)請(qǐng)求參數(shù)處理后將響應(yīng)的數(shù)據(jù)原路反饋給 Node 端,再轉(zhuǎn)回前臺(tái)頁面,用戶刷新一下就得到某個(gè)城市的天氣預(yù)報(bào)。正式利用這種前后分離模式,使得天氣預(yù)報(bào)的后端只注重天氣數(shù)據(jù)的更新,而不需要再去關(guān)注頁面的結(jié)構(gòu),前端只需要注重界面對(duì)用戶的呈現(xiàn),而不需要去更新數(shù)據(jù),而且這種平臺(tái)在任何網(wǎng)絡(luò)連接到的地方都可以用到天氣預(yù)報(bào)的數(shù)據(jù),這就說明了可以復(fù)用前后分離數(shù)據(jù)。
三、結(jié)語
? ? 在企業(yè)網(wǎng)站開發(fā)建設(shè)中采用前后端分離模式進(jìn)行 Web 開發(fā),這極大地簡(jiǎn)化了網(wǎng)站開發(fā)建設(shè)的復(fù)雜性,也使得前后端的耦合性弱化,網(wǎng)站建設(shè)增強(qiáng)了一些數(shù)據(jù)的重復(fù)利用性。前端技術(shù)在企業(yè)網(wǎng)站開發(fā)中,可以快捷有效地建設(shè)企業(yè)網(wǎng)站,在后期的維護(hù)和網(wǎng)站的擴(kuò)展中更加簡(jiǎn)便,這提高了員工了的工作效率,增加了企業(yè)的整體效益。