淺析自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)問(wèn)題

2016-10-17    分類(lèi): 網(wǎng)站建設(shè)

 這幾年隨著移動(dòng)設(shè)備的不斷普及, 使用手機(jī)和平板電腦觀看網(wǎng)頁(yè)的幾率大增, 因此, 網(wǎng)頁(yè)從簡(jiǎn)單的HTML進(jìn)化到必須符合各種分辨率的屏幕, 這是一個(gè)不可避免的趨勢(shì)。

目前開(kāi)發(fā)針對(duì)于移動(dòng)設(shè)備的APP非常流行, 各大網(wǎng)站都有其相應(yīng)的APP。但是在學(xué)習(xí)編寫(xiě)APP的時(shí)候, 我感覺(jué)到有幾個(gè)問(wèn)題值得探討。第一, 現(xiàn)在最流行的手機(jī)操作平臺(tái)有兩個(gè):Android和IOS, 其編程難度都不低;第二, 與網(wǎng)站可以直接瀏覽不同, 使用者必須另外下載APP。當(dāng)然另外寫(xiě)一個(gè)APP可以提供更具有針對(duì)性的服務(wù), 但是提供一個(gè)手機(jī)瀏覽器可以瀏覽的版本也是必要的。

1、使用React.JS開(kāi)發(fā)自適應(yīng)網(wǎng)站

對(duì)于開(kāi)發(fā)自適應(yīng)網(wǎng)站而言, 在現(xiàn)在發(fā)達(dá)的開(kāi)源社區(qū)中, 我們有很多可以使用的好東西。Bootstrap3和React.JS就是其中的佼佼者。

Bootstrap是一個(gè)前端的Framework, 可以使我們節(jié)省很多花費(fèi)在編寫(xiě)CSS身上的時(shí)間。作為設(shè)計(jì)自適應(yīng)網(wǎng)站的重點(diǎn), CSS具有比較容易的會(huì)有硬件加速等的優(yōu)化;另外, 為了提高效率, 能用CSS做到的, 就盡量不要用Java Script來(lái)實(shí)現(xiàn)。

React.JS (以下簡(jiǎn)稱(chēng)React) , 是Facebook底下的開(kāi)源項(xiàng)目, Instagram就是使用React開(kāi)發(fā)的。React是個(gè)JS框架, 同時(shí)也是個(gè)新的網(wǎng)頁(yè)開(kāi)發(fā)概念。隨著這幾年來(lái)的蓬勃發(fā)展, 一直不斷推陳出新, 甚至可以用來(lái)開(kāi)發(fā)i OSApp。

React讓網(wǎng)頁(yè)開(kāi)發(fā)變成一種簡(jiǎn)單的概念。和以往使用JQuery或是其他的套件有很大不同的是, React把網(wǎng)頁(yè)中的元素當(dāng)成一個(gè)一個(gè)的“組件”, 先定義“組件”, 再將“組件”塞進(jìn)網(wǎng)頁(yè)中。這樣的做法有幾個(gè)好處:第一、我們可以重復(fù)使用相同的組件, 卻只要定義一遍;第二、我們可以享有React提供的渲染優(yōu)化。所謂的渲染優(yōu)化, 就是React對(duì)于網(wǎng)頁(yè)內(nèi)容呈現(xiàn)的處理方式加以優(yōu)化的算法。在呈現(xiàn)一個(gè)新網(wǎng)頁(yè)之前, React會(huì)先將新舊網(wǎng)頁(yè)的內(nèi)容加以比較, 找出兩者相異之處后, 再以修改舊網(wǎng)頁(yè)的文件對(duì)象的方式達(dá)成新網(wǎng)頁(yè)的呈現(xiàn)。相較于傳統(tǒng)瀏覽器整個(gè)重新剖析計(jì)算新網(wǎng)頁(yè), React可以讓瀏覽器呈現(xiàn)網(wǎng)頁(yè)的效率大為增進(jìn)。

使用React, 網(wǎng)頁(yè)分成了“組件”和“數(shù)據(jù)”, 只要管理數(shù)據(jù), 讓React來(lái)負(fù)責(zé)渲染。這樣的作法, 我們可以很容易地開(kāi)發(fā)出一個(gè)純AJAX網(wǎng)站, 讓網(wǎng)頁(yè)加載后, 便不再需要重新整理, 全部使用JS去抓“數(shù)據(jù)”。還有一個(gè)好處就是不用再為處理這些數(shù)據(jù)而傷透腦筋, 只要將數(shù)據(jù)放進(jìn)該放的地方就好。使用React的數(shù)據(jù)流寫(xiě)前端的時(shí)候, 我們只要考慮整體, 而不用考慮細(xì)節(jié)。而分工從一般網(wǎng)頁(yè)設(shè)計(jì)上的功能性分工, 變成“組件”各自處理自己的部分, 而“組件”中還可以遷入其他組件, 形成一個(gè)數(shù)據(jù)流。

2、開(kāi)發(fā)中遇到的問(wèn)題

2.1 舊版IE瀏覽器

因?yàn)镮E老舊, 而有些地方又常常指定使用舊版IE (如IE8) , 導(dǎo)致目前還有大量舊版IE使用者。

IE11是一款可支持HTML5標(biāo)準(zhǔn)的瀏覽器, 所以我選擇支持。當(dāng)然, 我們還是必須另外寫(xiě)一些程序代碼讓網(wǎng)頁(yè)支持IE11。

使用最新的瀏覽器, 我們可以使用最新的標(biāo)準(zhǔn)來(lái)編寫(xiě)網(wǎng)站, 而不用遷就舊版IE瀏覽器, 套件也可以用最新版。最新版往往功能較多或是效率較高, 如JQuery 2.X以后版本不支持舊版IE。

2.2 不同的瀏覽器

每個(gè)瀏覽器的行為和支持的JS、CSS方法不同, 撰寫(xiě)自適應(yīng)網(wǎng)站一定要用各種瀏覽器測(cè)試, 不然就會(huì)出現(xiàn)意外的狀況。如果不想使用太多瀏覽器, 除了Chrome外, 至少還要再使用Fire Fox, 因?yàn)镕ire Fox是一款非常遵守HTML5標(biāo)準(zhǔn)的瀏覽器。

2.3 不同的屏幕大小

這是一個(gè)基本的問(wèn)題, 不同屏幕大小會(huì)影響你的網(wǎng)頁(yè)瀏覽模式, 有些時(shí)候不是調(diào)整一下DIV寬度就可以解決的。

諸如此類(lèi)還有一些按鈕、表格等, 如果可以的話, 一開(kāi)始就設(shè)計(jì)一個(gè)可大可小的顯示方法, 不然的話, 就必須針對(duì)不同的大小, 提供不同的網(wǎng)頁(yè)設(shè)計(jì)。手機(jī)優(yōu)先是現(xiàn)在的主流, 設(shè)計(jì)樣式時(shí)以小屏幕設(shè)計(jì)常常可以得到比較好的效果。

2.4 操作的模式和JS事件

手機(jī)上的觸控, 是不適用鼠標(biāo)事件的, 而是另外定義一個(gè)“觸控事件”, 還有手機(jī)上不容易觸發(fā)Hover事件, 有些因?yàn)槭謾C(jī)屏幕小, 很難進(jìn)行精準(zhǔn)的點(diǎn)擊。根據(jù)上述原因, 設(shè)計(jì)自適應(yīng)網(wǎng)頁(yè)給手機(jī)使用者使用時(shí), 一定要注意按鈕的大小不能太小, 也不要在網(wǎng)頁(yè)上放太多Hover的事件, 如果有用到mousedown、mouseover等鼠標(biāo)事件, 也一定要注意另外定義touchstart、touchmove事件。

2.5 不要使用外掛功能, 如Flash

這里的外掛指標(biāo)準(zhǔn) (HTML/CSS/JS) 之外的網(wǎng)頁(yè)外掛工具, 像是Flash, 因?yàn)槭謾C(jī)版瀏覽器可能不支持這些外掛, 很難跨平臺(tái)?,F(xiàn)在的Android已經(jīng)預(yù)設(shè)不使用Flash了, HTML5標(biāo)準(zhǔn)中也有很多更好用、效率更高的對(duì)象能夠取代Flash, 現(xiàn)在我們有更好的選擇, 使用大量外掛開(kāi)發(fā)網(wǎng)頁(yè)的時(shí)代已經(jīng)過(guò)去了。

2.6 網(wǎng)頁(yè)加載速度

其實(shí)這個(gè)問(wèn)題不只在自適應(yīng)網(wǎng)站上會(huì)有, 一般網(wǎng)站也該注意。

使用了很多套件、自適應(yīng)的CSS檔案, 我們的網(wǎng)頁(yè)常常會(huì)很肥大, 尤其是移動(dòng)設(shè)備常常不會(huì)有良好的網(wǎng)絡(luò)環(huán)境, 瀏覽網(wǎng)站一次可能就要加載好幾秒甚至幾分鐘。

盡量不要加載不必要的CSS、JS, 然后啟用壓縮功能, 把空白和換行壓縮掉, 并用gzip壓縮, 大概可以讓整個(gè)網(wǎng)頁(yè)變成原本的20%甚至更小。

網(wǎng)頁(yè)標(biāo)題:淺析自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)問(wèn)題
轉(zhuǎn)載源于:http://www.muchs.cn/news27/52027.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、全網(wǎng)營(yíng)銷(xiāo)推廣、App設(shè)計(jì)、服務(wù)器托管、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)