[前端] 現代化網站技術分享日重點整理含hackpad
課程分為
hackPad : https://hackpad.com/ZWVGk6BFDfn
hackPad : https://hackpad.com/ZWVGk6BFDfn
- 現代化網頁開發技術三要素
- SASS & RWD 前端版型架構規劃
- Modern FrontEnd Devops - 104兒童美術館 (cicisasa.com)自動部署上線分享
- 前端網頁資料視覺化
- 網頁設計效能優化
- 現代網頁設計趨勢觀察
現代化網頁開發技術三要素
- 可以用 http://caniuse.com/ 先查詢CSS是否有在哪個瀏覽器有支援
- 盡量用最新版的jQuery
- 因為現代瀏覽器支援比較多,如果用舊版本的jQuery,會造成很多原本瀏覽器可以幫我們做的,變成用jQuery硬幹
- CSS盡量不要用vendor-prefix like : -webkit,moz-,o-,etc
- 有些像border-radius大部份新版的瀏覽器已經支援,但網路上許多範例仍然是會有webkit-border-radius這種
- 可以使用微軟的工具 來對網站做掃描與建議修正
- 因為現在裝置大部份都是高解析度螢幕,都盡量改成用向量圖形,不要用圖片
- fontawesome
- 現在行動裝置比例越來越高,網站設計也要針對行動裝置
- RWD
- input type="email"
- TypeScript
- BabelJS 可以將es6的東西轉成es5
- VorlonJS
- 自動化工具使用
- 找生態圈仍然很活躍的
- grunt
- gulp
- webpack
SASS & RWD 前端版型架構規劃
- OOCSS Helper
- 斷點隱藏
- hidden-sm (Bootstrap)
- mobile-none
- BEM 狀態的變動
- <div class="block--mobileShake">
- 可以由classname就看出CSS的相依性
- 別人寫的專案通常Utility.scss就很像OOCSS Helper
Modern FrontEnd Devops - 104兒童美術館 (cicisasa.com)自動部署上線分享
- HotDeploy
- 網站不需要關站
- Zero downtime
- 持續整合 (CI) 持續部署 (CD)
- 用node.js開發->500 error是必需要處理的
- Redis
- key value db
- fast
- Grunt task manager
- Gulp task manager
- Browserfy Dependency manager
- 何時要用到自動部署
- 自己一個寫程式沒有影響也不需要
- 多個人時,要用就要提早用
前端網頁資料視覺化
- D3.js 可以直接render
- SVG
- KML..
- Processing,js
- p5.js
- Pixi.js效能比較快
網頁設計效能優化
- 減少request數
- request本身就是http中成本最高的動作
- 避免404
- 視情況將多隻css merge成一個檔案
- 根據Page Flow將css merge成一個
- 例如同個購物流程中所有的CSS
- CSS etag (根據css內容hash出檔名,來檢視說此隻CSS有無變動)
- CSS Sprites
- 使用icon font (向量檔)
- Image lazyload
- 用data-lazyload將img的src放在上面,等使用者viewport捲到時再來用ajax載入
- 最小化cookie
- 將圖片的domain切割成多個,就可以最大化最大連線數
- static.fb1..
- static.fb2..
- 把沒有用到的DOM給瘦身掉
- 用CSS時可以多利用pseudo DOM
- 當有需要才動態產生DOM
- SEO的部分可以改用JSON-LD
- 避免網站載入時裸奔,先將CSS擺到最上面
- CSS的規則是從右邊讀到左邊
- 一般寫法 div > a > p
- 實際讀法 p > a > div
- 做特效時可以適當使用will-change把層級拉高,效能會比較好
- CSS能處理的就別給JS處理 , 但僅限於簡單的特效或畫面呈現
- JS在載入的時候是先下載完並解析
- 所以可以改成跟臉書一樣用動態注入
(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
- 適當使用cache,web sql storage,local storage
- auto-complete
- 動態取得li選項
現代網頁設計趨勢觀察
- 視覺差
- 講師是CSS可樂站長
- 漸層扁平化
- UX要問一般人這樣的流程順不順比較好
- CSS3 flex排版
留言
張貼留言