網頁制(zhì)作(zuò)開(kāi)發的(de✘≥'©)實用(yòng)技(jì)術(shù)綜述一(yī)覽
日(rì)期:2013-04-29發布:首創網絡浏覽:635次
網頁制(zhì)作(zuò)開(kāi)發的(de)實用(yòng)技(jì)↕→σ←術(shù)綜述一(yī)覽。從(cóng)這(zhè)幾年(niá≤ n)的(de)工(gōng)作(zuò)實踐以及我們與衆多(duō)web開(✘₩kāi)發者的(de)溝通(tōng)交流中,聽(tīng)得(de∑ →♣)最多(duō)的(de)一(yī)件(jiàn)事(shì)情就(jiù¥π≥)是(shì)創建一(yī)個(gè)能(néngδ÷<)很(hěn)好(hǎo)的(de)跨越各種類型浏覽器(qìβ♠≈)版本與各種設備的(de)網站(zhàn)有(yǒu)★★≥多(duō)麽難。我們為(wèi)jQuery項目寫代碼的(de)時↑∞✘(shí)候一(yī)直有(yǒu)這(zhè)↔↑個(gè)問(wèn)題。因此我們整理(lǐ)了(le)一(yī)∏α©些(xiē)編···
本文(wén)關鍵字:網頁制(zhì)作(zuò),開(<"kāi)發,的(de),實用(yòng)技(jì)術(sδγhù),綜述,一(yī)覽,
網頁制(zhì)作(zuò)開(kāi)發的(de¶× )實用(yòng)技(jì)術(shù)綜述一(yī)覽。從(β±™cóng)這(zhè)幾年(nián)的(de)工(λ★€gōng)作(zuò)實踐以及我們與衆多(d™π↑♠uō)web開(kāi)發者的(de)溝通(tōng)交流中,聽(tīng)Ω'®得(de)最多(duō)的(de)一(yī)件(jiàn)事(s÷₩♦λhì)情就(jiù)是(shì)創建一(yī)個(gè)¥>能(néng)很(hěn)好(hǎo)的(de)跨越各種類型浏覽器>β®(qì)版本與各種設備的(de)網站(zhàn)有(yǒu)多(duō)麽♣δ難。我們為(wèi)jQuery項目寫代碼的(de)時(shí)候一(y®γī)直有(yǒu)這(zhè)個(gè)問(wèn)題☆∏≈。因此我們整理(lǐ)了(le)一(yī)些(xiē)編碼模式與←§≠經驗,它們是(shì)從(cóng)出席無休止的(d >§e)會(huì)議(yì)和(hé)讀(dú)了(le)幾百↔∑篇專稿中摘取出來(lái)的(de)。我們希望能($©'néng)在你(nǐ)建站(zhàn)的(de)時(shí)↓↔候給你(nǐ)節省一(yī)些(xiē)時(↓≈shí)間(jiān)(和(hé)麻煩)。
跨浏覽器(qì)基礎網站(zhàn)不(¥Ωbù)需要(yào)在所有(yǒu)浏覽器(qì)裡(lǐ)渲染得(deγ≤")一(yī)樣
一(yī)件(jiàn)普遍被開(kāi)發者所關心的(↔→ de)事(shì)情是(shì)确保他(tā)們的(de)網站(zhàn←λ)在所有(yǒu)浏覽器(qì)中渲染得(de)一(yī)樣,π>∞包括非現(xiàn)代的(de)一(yī)些(xiē)。那(nà)一(y₽♣ī)般并不(bù)需要(yào)。更好(hǎo)的(de)路(lù)線是(✔σπshì)考慮逐漸增強你(nǐ)的(de)網站(zhà&λn),對(duì)非現(xiàn)代浏覽器(qì)的(de)用(y>σδòng)戶提供一(yī)個(gè)可(kě)靠的(de)≥↔✔×工(gōng)作(zuò)基線,而給用(yòng)現(x✘↓Ω♣iàn)代浏覽器(qì)的(de)用(yòng)戶提供一(yī)個♥π<(gè)更豐富的(de)UI。
從(cóng)固體(tǐ)模版開(kāi)↓∑×γ始以簡化(huà)開(kāi)發
許多(duō)的(de)技(jì)巧已經創建進 <≥項目模版如(rú)HTML5Boilerplatβα₹"e以節省你(nǐ)一(yī)些(xiē) ♥時(shí)間(jiān)。這(zhè)些(xiē)準則對(d← uì)以現(xiàn)代浏覽器(qì)為(wèi)目标的(de)項目和(hé)↔↔<♦需要(yào)舊(jiù)浏覽器(qì)(一(yī)直回退到(dàφ>©o)IE6)支持的(de)項目工(gōng)作(zuò)得(de)一(yλ"≥ī)樣好(hǎo)。
關注穩定的(de)标準
當一(yī)個(gè)新又(yòu)酷的(de)特性出現(xiàn₽™ )的(de)時(shí)候很(hěn)容易令人(rén)興奮,但(dàn)其中☆λ的(de)一(yī)些(xiē)可(kě)能(néng)仍然在為(wèi) ↓技(jì)術(shù)參數(shù)實驗、仍然在開(kāi)發中。重要(yàoεδ)的(de)是(shì)要(yào)記得(de),在規範發展的(d >✔→e)早期是(shì)很(hěn)容易變化(huà)的(de),這(zhè)有←≥≤ (yǒu)可(kě)能(néng)影(yǐn'₩•g)響你(nǐ)的(de)網站(zhàn)的(deφ↑β↔)穩定性和(hé)你(nǐ)的(de)用(yπ>òng)戶的(de)體(tǐ)驗。通(tōng)過關注穩定的(×✔$<de)标準,你(nǐ)可(kě)以确保你(nǐ)的(&♠λ≠de)用(yòng)戶能(néng)獲得(de)他(tā)們期望的(de∞¥)體(tǐ)驗,你(nǐ)的(de)網站(zhàn)會(h∑γ☆uì)更易維護。
用(yòng)IE兼容檢測工(gōng)具幫助你(nǐ)的(de)α₽☆網站(zhàn)遷移到(dào)基于标準的( ®Ω"de)代碼
标準是(shì)IE10的(de)一(yī)個§↓ (gè)核心部分(fēn),幫助開(kāi)發者遷移他(tā)們的(de'×₩ε)代碼以便能(néng)發揮這(zhè)項長(cháng)處,這(zhè)對('₹ duì)IE工(gōng)程項目組來(lái)說(shuō)無比重要'®×(yào)。這(zhè)就(jiù)是(shì)為(wèi)什(shén)麽他¶★©•(tā)們創造了(le)IE兼容檢測工(gōng)具,它能(néng)實時(φ☆± shí)分(fēn)析你(nǐ)的(de)網站(zhàn),準确的(de)找 σ ₹到(dào)通(tōng)常問(wèn)題的(de)類型并給出解決方法。通('£tōng)過在你(nǐ)的(de)代碼中包₽$>∞括一(yī)個(gè)簡單的(de)Ja ♦÷vaScript腳本文(wén)件(jiàn),在你(nǐ)的(de)頁面¶≠®你(nǐ)就(jiù)能(néng)得(de)到(dào)可(k→÷¥ě)視(shì)化(huà)的(de)結果。它也(yě)可(kě)以被₹•£≤集成進FidderHTTP分(fēn)析工(gō♥£ng)具。
謹慎使用(yòng)polyfills和(hé)shims(模拟标準A≠λPI)
如(rú)果你(nǐ)必須在不(bù)同浏覽器(±α±εqì)實現(xiàn)系統的(de)體(t>¥✘ǐ)驗,polyfills和(hé)shims提供εδ了(le)代碼和(hé)标簽,可(kě)以幫助模拟标準的(de↓←↓)API和(hé)功能(néng)。需要(yào)謹記✘♦φ≈的(de)是(shì),确保你(nǐ)引入的(de)代碼适 合你(nǐ)的(de)需要(yào),并且可(kě)以在日(rì)後維護≈±。
開(kāi)發時(shí)多(duō)浏★&↓∞覽器(qì)測試
盡管相(xiàng)對(duì)以♥Ω↓前,現(xiàn)代浏覽器(qì)已經接近(jìn)統一(yī)€→φ 标準,但(dàn)還(hái)是(shì)有(yǒu)不('∞bù)同。偶爾的(de)多(duō)浏覽器(qì)測試避免不(bù)∑←會(huì)在最後一(yī)刻發現(xiàn)大(dà)問(wèn)題&'♠mdash;—甚至已經上(shàng)線了(le)。确保查 ∑σ↕看(kàn)所有(yǒu)浏覽器(qì)調試器(qì)比如(rú®↑)IE的(de)F12DevTools,φ✘£✘檢查有(yǒu)沒有(yǒu)警告或錯(cuò)誤信息。一(yī™<±≠)些(xiē)老(lǎo)浏覽器(qì)比如(rú)IE7沒有($γyǒu)內(nèi)建調試器(qì),可($♠≥<kě)以用(yòng)FirebugLit₹$≤♠e調試。或者使用(yòng)跨浏覽器(qì)解£γ決方案如(rú)BrowserStack。
用(yòng)工(gōng)具參與創建過程來→±↔ (lái)檢測錯(cuò)誤和(hé)縮小(xiǎo)文(wén)件(jià©σεn)大(dà)小(xiǎo)
有(yǒu)好(hǎo)一(yī)批創建工(gōng)具如(rδ₹★φú)HTMLvalidators,CSSvalαγ♥★idators,Uglify,JSHint"£↕,或者GruntJS,他(tā)們能(néng)找到(dào)潛在的(↓↕>₹de)問(wèn)題,增強項目代碼的(de)标準,減少$₽α₹(shǎo)文(wén)件(jiàn)的(de)大(dà) €小(xiǎo)提升性能(néng)。如(rú)果你(nǐ)的(deδ∞)IDE或者代碼編輯器(qì)支持它們,這(zhè)些(λγxiē)步驟就(jiù)不(bù)會(huì)成為(wèi)ᣕ 絆腳石。例如(rú),VisualStudio提供了(le)在♠®δ創建過程中運行(xíng)外(wài)部工(gōng)具和(hé)₩↕∏合并/壓縮腳本文(wén)件(jiàn)的(de)能(n∑ éng)力。
HTML總是(shì)使用(yòng)标準模式避免怪癖模式Ω↓←™
直接用(yòng)!DOCTYPEhtml吧(ba)×★!現(xiàn)代化(huà)網站(zhàn)不(bù)需要(yào)怪♦♣ 癖模式,不(bù)需要(yào)考慮90年(nián)代中期γ§ 為(wèi)了(le)兼容現(xiàn)代化(huà)的(deΩ£✔α)浏覽器(qì)比如(rú)IE6和(hé)FireFox2.大(dà)多(d ≥ ♣uō)數(shù)現(xiàn)今的(de)€≥♠網頁在怪癖模式下(xià)要(yào)麽文(wén)檔聲明(mí÷↓Ω₩ng)無效,要(yào)麽出現(xiàn)無關文(wén)本。很(α↑•♠hěn)容易導緻布局異常,而且很(hěn)難調試。
理(lǐ)解有(yǒu)限向後兼容的(de)HTML≠₽标簽
新HTML5标簽比如(rú)section,header和(hé)f λ≠ooter改善标簽的(de)語義化(huà),但(dàn)需要(yàε←↔✘o)特殊的(de)輔助腳本讓IE6,7和(hé)8認♦✘®€識他(tā)們。頁面在太舊(jiù)的(de)浏覽器(qì)或者禁止腳本β∑¶時(shí)無法使用(yòng)HTML5标簽,那(nà)麽使'π用(yòng)p标簽是(shì)對(duì)這(zhè)些(xiē)情>'≠況比較靠譜的(de)解決方法。
将CSS在HTML文(wén)件(jiàn)頂部引入βα£
在文(wén)檔body中引入CS♠¶→©S會(huì)導緻頁面全空(kōng),直$♣Ω到(dào)CSS加載後才顯示。CSS文(wén)件(↔✔±€jiàn)應該放(fàng)在HTML文(wén)檔的(de)h©β↔ead中,讓浏覽器(qì)盡早地(dì)讀(dú)取他(tā)們。
将JS在HTML文(wén)件(jiàn)≤ Ω底部引入
浏覽器(qì)會(huì)先檢索、解析和(hδ€é)執行(xíng)加載的(de)腳本,然後渲染剩餘的(de)頁面內(n∑♣"èi)容,以防腳本創建新元素。腳本在底部後,浏覽器(qì)可ε≥φ(kě)以一(yī)直渲染頁面直到(dào)腳本加載完全,以便用σπ>(yòng)戶盡快(kuài)加載頁面顯示出>來(lái)。
避免HTML中腳本标簽
不(bù)同于引入腳本,腳本标簽需✔∑★→要(yào)浏覽器(qì)停止渲染(處理(lǐ)腳本),α↔→≈阻礙後續資源文(wén)件(jiàn)的(de)分(fēn)析和(hé)Ω₹下(xià)載。這(zhè)導緻頁面初始加載減慢(màn),甚β♣至留下(xià)可(kě)怕的(de)&ld→"quo;空(kōng)白(bái)頁”₩σ£體(tǐ)驗。而且腳本分(fēn)散在內(nè÷>i)聯标簽裡(lǐ)很(hěn)難維護。
不(bù)要(yào)在HTML元素中使用(yòng)內'≈←(nèi)聯腳本事(shì)件(jiàn)
這(zhè)種做(zuò)法違反了(le)标簽§☆>δ、表示和(hé)行(xíng)為(wèi)之間(jiān)的(de)清爽原則。•γ≠而且,如(rú)果相(xiàng)關的(de)腳本實在文(wén)檔底部加$•☆載,用(yòng)戶可(kě)能(néng)先點擊了≥ →(le)頁面觸發事(shì)件(jiàn)從(cóng)≥¶×而嘗試調用(yòng)腳本程序,但(dàn)是(s ©∞hì)其實腳本還(hái)沒加載——引發錯(cuò)誤₹♣↕!
CSS熟悉和(hé)使用(yòng)CSS級聯規則
簡單的(de)id和(hé)class選擇器(q↓↑↕ì)是(shì)好(hǎo)用(yòng)的(de),但(dàn)是(shì¥↔$ )這(zhè)也(yě)意味著(zhe)标簽混≥α亂,到(dào)處是(shì)無法重用(yòng)的₩✘(de)的(de)id和(hé)class。應該用(yòng)标簽♠±₩€,子(zǐ)元素标簽,同列标簽和(hé),小(xiǎo)部分(λ♥↑πfēn)的(de)id和(hé)class标簽組合,使css更簡單和(£♣hé)通(tōng)用(yòng)。避免使用(yòng)“ γ♠!imporant”。
面向未來(lái)的(de)使用(yòng)前綴特定屬性
新草(cǎo)案制(zhì)定時(s≈×♠>hí),一(yī)些(xiē)浏覽器(qì)廠(ch™ ǎng)商會(huì)通(tōng)過添加前綴以實現(xiàn)可β ☆(kě)能(néng)支持的(de)标準。為(wèi∞α)了(le)确保CSS标簽以後可(kě)用(yòng),帶前綴的(₩✘¶de)和(hé)标準的(de)屬性名稱都(dōu)用(yòng)上(π™↓shàng)最好(hǎo)。這(zhè)篇文(wén)章(zhΩ<£≈āng)還(hái)提供了(le)一(yī)個(gè)JavaScripγδt解決方法。
用(yòng)優雅的(de)CSS處理(lǐ)←≠£ 兼容性,而不(bù)是(shì)hack
CSShack随著(zhe)浏覽器(qì)的(de)更★↕₹新,顯得(de)不(bù)可(kě)靠。解決方法是(→≤shì)為(wèi)html或body标簽添加特定浏覽器(qì ÷)的(de)class,并在css規則中使用(yòng)。條÷↑件(jiàn)注釋也(yě)可(kě)以在特定浏覽器(qì)版本時(shí)↕φ使用(yòng)需要(yào)的(de)CSS文(wén)件(jiàn) $。
JavaScript總是(shì)将γπ功能(néng)探測優先于浏覽器(qì)(navigat≈&εor.userAgent)探測。
判斷是(shì)否存在一(yī)個(gè)特定功能(néng)(或錯∞λδ(cuò)誤)時(shí),’userAgent’字符φ∞串是(shì)一(yī)個(gè)糟糕的(de)指 标。更嚴重的(de)時(shí),解析userAgent的(de)代碼時(sh ∞βí)錯(cuò)誤的(de)。例如(rú),一(yī)個(gè)浏覽α£器(qì)探測庫期待主版本号是(shì)一(yī)個(gè)一★✔(yī)位數(shù)字,所以會(huì)把Firefox15報(b≈αào)告為(wèi)Firefox1,把IE10報(bào₹β)高(gāo)為(wèi)IE1!更可(kě)靠的(de)是(shì←★©)直接探測功能(néng)或問(wèn)題,并用(yòng)它作(zuò£ε≈♠)為(wèi)代碼分(fēn)支決策的(deφφ∑)标準。我們推薦Modernizr,它是(shì)實現(xiàn)功能(né∞≈ng)探測的(de)最簡單方法。
盡可(kě)能(néng)在Ready後立刻執行(xí✔✔ng)腳本
技(jì)術(shù)上(shàng)如(rúφ✔π≈)jQuery的(de)$(document).→↓→★ready()使腳本在HTML頁面加載完後立即執行(xí←©$ng),也(yě)是(shì)腳本可(kě)以安全執行(xíng)的(✔¥♠de)最早時(shí)刻。然而複雜(zá)的(de)腳本會(huì)讓α✘頁面顯得(de)遲緩,并阻止用(yòng)戶立刻操作(zuò)頁面λ$。所以,一(yī)些(xiē)比如(rú∞ε)tooltip(提示框),dialog↔"€&(對(duì)話(huà)框)在需要(yào)顯示時(shí)♣↔↑初始化(huà),不(bù)造成頁面卡頓。☆↕♥®
如(rú)果Ajax關系用(yòng)戶交互,越早請(α₩©qǐng)求越好(hǎo)
Ajax請(qǐng)求會(huì)花(σ< huā)費(fèi)很(hěn)長(cháng)時(shí)間(¥↔$jiān),而且不(bù)需要(yào)等待HTML頁面渲染就(j ±¥iù)可(kě)以發起請(qǐng)求。所以,把$♥÷≈(document).ready()放(f♥®€àng)在Ajax請(qǐng)求完成回調函數(shù)中更好(hǎo)。
延遲加載非必要(yào)的(de)腳本(如(rú)Facebo"→okLike,Google+1,Twitter)。
所有(yǒu)人(rén)都(dōu)希望他(tā)們的(de)網頁在社₽•∑↑交網絡上(shàng)流行(xíng),但(dàn)是(shì)社₹₹交網絡的(de)腳本往往很(hěn)大(dà),γ↔可(kě)能(néng)會(huì)引起用(y ±òng)戶響應遲緩。在請(qǐng)求這(zhè)些(xiē)腳©'本前等待頁面加載完畢,可(kě)以使頁面響應更快(kuài)。更妙的(de©♣↕α)是(shì),重新考慮這(zhè)些(xiēαΩ±)按鈕是(shì)否有(yǒu)必要(yào),以及¶α它們是(shì)否改善了(le)你(nǐ)的(de)頁面整體(tǐ)體(tλ ǐ)驗。
- 歡迎大(dà)家(jiā)閱讀(dú)浏覽,部分(fēn)"Ω←內(nèi)容來(lái)源于網絡,如(rú)有"Ω•(yǒu)侵權,請(qǐng)聯系我們删除!
- 上(shàng)一(yī)條:網站(zhàn)建設初期以及遷移時(shí)301重定向的(de)作(z€φ∞uò)用(yòng)
- 下(xià)一(yī)條:淺談什(shén)麽是(shì)正确的(de)W3C标準
服務項目
熱(rè)門(mén)信息
- 邯鄲網絡公司:模闆建站(zhàn)的(de)好(hǎo₹↔&₩)處有(yǒu)哪些(xiē)?
- 3642024-04-25

- 邯鄲網絡公司:網站(zhàn)建設開(kāi)¥∞發有(yǒu)哪些(xiē)細節需要(yào)注意?
- 5402024-03-07

- 邯鄲網絡公司:外(wài)貿網站(zhàn)制 φ&¶(zhì)作(zuò)的(de)8個(gè)步驟
- 3772024-03-05

- 簡單3步,輕松做(zuò)企業(yè)官網
- 6822024-02-18
