整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          讓web app更快的HTML5最佳實踐

          讓web app更快的HTML5最佳實踐

          文重點關注如何充分利用HTML5和CSS讓web app運行更加流暢。

          Tip 1: 使用web storage代替cookie

          cookie最大的缺陷是在每一次HTTP請求中都會攜帶所有符合規則的cookie數據.這會增加請求響應時間,特別是XHR請求. 在HTML5中使用sessionStorage和localStorage代替cookie是更好的做法.

          這另種方法可以將數據永久或者以session時間存儲在用戶本地.數據不會隨著HTTP請求傳遞.所以我們優先使用web storage,僅僅使用cookie作為替代方案.

          // if localStorage is present, use that if (('localStorage' in window) && window.localStorage !==null) { // easy object property API localStorage.wishlist='["unicorn", "Narwhal", "deathbear"]'; } else { // without sessionStorage we'll have to use a far-future cookie // with document.cookie's awkward API var date=new Date; date.setTime(date.getTime + (365 * 24 * 60 * 60 * 1000)); var expires=date.toGMTString; var cookiestr='wishlist=["unicorn", "Narwhal", "deathbear"];' + ' expires=' + expires + '; path=/'; document.cookie=cookiestr; }

          Tip 2: 使用CSS Transition代替JavaScript動畫

          CSS Transition能帶來更高的性能,更少的代碼,更容易維護和理解.

          Tip 3: 使用客戶端數據庫代替服務器請求

          Web SQL Database和IndexedDB讓瀏覽器有了數據庫存儲能力.很多應用場景可以遷移到客戶端數據庫以減少服務器的請求次數.

          localStorage和sessionStorage在簡單數據存儲時比客戶端數據庫更快,可以用來實現一些簡單的狀態,進度保存.

          當一個組件需要管理上百條數據(如好友列表),同時支持用戶搜索, 過濾, 排序時, 客戶端數據庫存儲一份數據可以有效減少HTTP請求次數. 查看Web SQL Database tutorial獲取詳細指導.

          Tip 4: 使用JavaScript原生API

          隨著更高版本JavaScript的普及, 像Array prototype新增了很多API都可以在大多數瀏覽器中直接使用.例如:

          // give me a new array of all values multiplied by 10 [5, 6, 7, 8, 900].map(function (value) { return value * 10; }); // [50, 60, 70, 80, 9000] // create links to specs and drop them into #links. var linksList=document.querySelector('#links'); var links=; ['html5', 'css3', 'webgl'].forEach(function (value) { links.push(value.link('http://google.com/search?btnI=1&q=' + value + ' spec')); }); linksList.innerHTML=links.join(''); // return a new array of all mathematical constants under 2 [3.14, 2.718, 1.618].filter(function (number) { return number < 2; }); // you can also use these extras on other collections link nodeLists .forEach.call(document.querySelectorAll('section[data-bucket]'), function (elem, i) { localStorage['bucket' + i]=elem.getAttribute('data-bucket'); });

          通常情況下這些原生方法比手動編寫循環要快:

          • for (var i=0, len=arr.length; i < len; ++i) {}

          使用原生JSON.parse比json2.js更加高效,安全.

          原生的String.prototype.trim也是一個很好的例子, 這些功能不是HTML5中的,也應該得到廣泛的應用.

          Tip 5: 不僅僅為離線app使用cache manifest,在線網站網站也可以適當使用

          后臺管理系統這樣的站點使用緩存可以極大提高性能.

          cache manifest比設置Expires有一些優勢:明確地聲明需要緩存的文件,瀏覽器可以進行優化,可能在你使用之前就已經提前下載到本地了.

          可以將頁面基本結構看做模板, 顯示的內容隨著數據變化, 將可模板化的HTML結構通過cache.manifest進行緩存, 從服務器端獲取JSON數據之后更新內容.

          Tip 6: enable硬件加速來增強視覺體驗

          某些瀏覽器可能使用GPU加速讓高速動畫更加平滑.Firefox Minefield, IE9, Safari已經宣稱實現了硬件加速. Chromium也增加了window平臺的3D transform加速.各個瀏覽器對硬件加速的支持肯定會越來越好.

          在支持并啟動了硬件加速的情況下, 動畫, rotation, scaling, opacity肯定會更加平滑. 所有實際操作都發生在GPU而不需要內容的重繪. 然而需要注意的是,任何影響頁面布局的操作都會降低速度.

          Tip 7: 使用web worker執行需要大量CPU資源的操作

          web worker有兩個好處:

          1) 快速;

          2) 不阻塞瀏覽器響應。

          tml5是指萬維網的核心語言、 標準通用標記語言下的一個應用 超文本標記語言( HTML)的第五次重大修改,2014年10月29日, 萬維網聯盟宣布,經過接近8年的艱苦努力,該標準規范終于制定完成。

          HTML5的設計目的是為了在移動設備上支持多媒體。新的語法特征被引進以支持這一點,如video、audio和canvas 標記。HTML5還引進了新的功能,可以真正改變用戶與文檔的交互方式,包括新的解析規則增強了靈活性、新屬性、淘汰過時的或冗余的屬性等。

          HTML5賦予 網頁更好的意義和結構。更加豐富的標簽將隨著對 RDFa的,微數據與 微格式等方面的支持,構建對程序、對用戶都更有價值的數據 驅動的Web。

          本地存儲特性(Class: OFFLINE & STORAGE)

          基于HTML5開發的網頁 APP擁有更短的啟動時間,更快的聯網速度,這些全得益于HTML5 APP Cache,以及本地存儲功能。Indexed DB(html5本地存儲最重要的技術之一)和 API說明文檔。

          設備兼容特性 (Class: DEVICE ACCESS)

          從 Geolocation功能的API文檔公開以來,HTML5為網頁應用開發者們提供了更多功能上的優化選擇,帶來了更多體驗功能的優勢。HTML5提供了前所未有的數據與 應用接入開放接口。使外部應用可以直接與瀏覽器內部的數據直接相連,例如視頻影音可直接與microphones及攝像頭相聯。

          連接特性(Class: CONNECTIVITY)

          更有效的連接工作效率,使得基于頁面的實時聊天,更快速的網頁游戲體驗,更優化的在線交流得到了實現。HTML5擁有更有效的服務器推送技術,Server-Sent Event和WebSockets就是其中的兩個特性,這兩個特性能夠幫助我們實現服務器將數據“推送”到客戶端的功能。

          網頁 多媒體 特性(Class: MULTIMEDIA)

          支持網頁端的Audio、Video等多媒體功能, 與網站自帶的APPS,攝像頭,影音功能相得益彰。

          三維、圖形及特效特性(Class: 3D, Graphics & Effects)

          基于SVG、Canvas、WebGL及CSS3的3D功能,用戶會驚嘆于在瀏覽器中,所呈現的驚人視覺效果。

          性能與集成特性(Class: Performance & Integration)

          沒有用戶會永遠等待你的Loading——HTML5會通過 XMLHttpRequest2等技術,解決以前的跨域等問題,幫助您的Web應用和網站在多樣化的環境中更快速的工作。

          CSS3特性(Class: CSS3)

          在不犧牲性能和語義結構的前提下, CSS3中提供了更多的風格和更強的效果。此外,較之以前的Web排版,Web的開放字體格式( WOFF)也提供了更高的靈活性和控制性。

          關于沿革

          HTML5提供了一些新的元素和屬性,例如

          (網站導航塊)和

          。這種標簽將有利于搜索引擎的索引整理,同時更好的幫助小屏幕裝置和視障人士使用,除此之外,還為其他瀏覽要素提供了新的功能,如

          1、取消了一些過時的 HTML4標記

          其中包括純粹顯示效果的標記,如< font>和<center>,它們已經被CSS取代。

          HTML5 吸取了 XHTML2 一些建議,包括一些用來改善文檔結構的功能,比如,新的HTML 標簽 header, footer, dialog, aside, figure 等的使用,將使內容創作者更加語義地創建文檔,之前的開發者在實現這些功能時一般都是使用 div。

          2、將內容和展示分離

          b 和 i 標簽依然保留,但它們的意義已經和之前有所不同,這些標簽的意義只是為了將一段文字標識出來,而不是為了為它們設置粗體或斜體式樣。u,font,center,strike 這些標簽則被完全去掉了。

          3、一些全新的表單輸入對象

          包括日期,URL,Email 地址,其它的對象則增加了對非拉丁 字符的支持。HTML5 還引入了微數據,這一使用機器可以識別的標簽標注內容的方法,使語義Web 的處理更為簡單。總的來說,這些與結構有關的改進使內容創建者可以創建更干凈,更容易管理的網頁,這樣的網頁對搜索引擎,對讀屏軟件等更為友好。

          4、全新的,更合理的Tag

          多媒體對象將不再全部綁定在 object或 embed Tag 中,而是視頻有視頻的Tag,音頻有音頻的 Tag。

          5、本地數據庫

          這個功能將內嵌一個本地的SQL 數據庫,以加速交互式搜索,緩存以及索引功能。同時,那些離線Web 程序也將因此獲益匪淺。不需要插件的豐富動畫。

          6、Canvas 對象

          將給瀏覽器帶來直接在上面繪制 矢量圖的能力,這意味著用戶可以脫離Flash 和Silverlight,直接在瀏覽器中顯示圖形或動畫。

          7、瀏覽器中的真正程序

          將提供 API 實現瀏覽器內的編輯,拖放,以及各種 圖形用戶界面的能力。內容修飾Tag 將被剔除,而使用CSS。

          8、Html5取代Flash在移動設備的地位。

          9、其突出的特點就是強化了web頁的表現性,追加了本地數據庫,

          平臺:在多屏年代,開發者的痛苦指數非常高,人人都期盼HTML5能扮演救星。多套代碼、不同技術工種、業務邏輯同步,這是折磨人的過程。有點類似個人電腦早期世界,那個時候的每家電腦都有自己的操作系統和編程語言,開發者疲于做不同版本,其實DOS的盛行也很大程度是因為開發者實在沒精力給其他電腦寫程序。跨平臺技術在早期大多因為性能問題夭折,但中后期硬件能力增強后又會占據主流,因為跨平臺確實是剛需。

          快速迭代:移動互聯網是一個快魚吃慢魚的時代,誰對用戶的需求滿足的更快,誰的試錯成本更低,誰就擁有巨大的優勢。互聯網產品大多免費、且有網絡效應,后入者搶奪用戶的難度非常大。使用原生開發,從招聘、開發、上線各個環節的效率都慢一倍以上,而且參與的人越多,溝通效率往往拖慢不止一倍。

          持續交付:很多人有這樣的體會,一個原生應用上線Appstore,突然有一個大bug,只好連夜加班修復,然后靜靜等待2周或更長時間的Apple審核,這2個星期被用戶的涂抹淹死,市場上一片差評,用戶大量流失。等新應用被審核上線了,用戶已經卸載了。但是,HTML5沒有這些問題,你可以實時更新,有問題立即響應。

          大幅下降成本:創業者融資并不容易,如何花錢更高效非常重要。如果你使用原生開發的App和競爭對手使用HTML5開發的App沒什么區別,但你的開發成本高出一倍,我相信沒有投資人會喜歡給你投錢。

          開源生態系統發達:HTML5前端是開放的正反饋循環生態系統,大量的開源庫可以使用,開發應用變得更輕松、更敏捷,當然這也體現在了快速迭代和成本下降上。不過更重要的是,這種開放的正反饋循環生態系統未來的生命力是比原生生態系統更強勁的。

          開放的數據交換:HTML是以page為單元開放代碼的,它無需專門開發SDK,只要不混淆,就能與其他應用交互數據。開發者可以讓手機搜索引擎很容易檢索到自己的數據, 也更容易通過跨應用協作來滿足最終用戶需求。

          更容易推廣、更容易爆發:導流入口多:HTML5應用導流非常容易,超級App(如微信朋友圈)、搜索引擎、應用市場、瀏覽器,到處都是HTML5的流量入口。而原生App的流量入口只有應用市場。聰明的HTML5開發者當然會玩轉各種流量入口從而取得更強的優勢。

          流量大:前段時間微信朋友圈風靡一時《神經貓》,這個游戲如果放到Appstore,絕對沒有那么多流量,超級App帶來的流量,遠大于原生應用市場。假如微信允許游戲在桌面創建快捷方式、假如游戲后續升級解決持續娛樂問題,未來不可想象。

          導流效率高:除了入口多、流量大,導流效率高也不可忽視,誰都知道:頁游和端游打同樣的廣告,廣告變用戶的轉化率,頁游遠遠高于端游。

          HTML5的爆發,原生App生態系統的顛覆,是一場產業革命,很多角色都會受到影響,讓我們跟H5開發公司億點時代yidiantime.com拭目以待吧。


          主站蜘蛛池模板: 99精品国产一区二区三区2021| 欧美成人aaa片一区国产精品| 成人国产精品一区二区网站公司| 一区二区三区四区在线播放| 中文字幕乱码亚洲精品一区| 熟妇人妻一区二区三区四区| 无码少妇A片一区二区三区| 精品一区二区在线观看| 精品国产一区二区22| 精品视频在线观看一区二区| 无码一区二区波多野结衣播放搜索 | 99精品国产高清一区二区| 国产一区二区精品尤物| 国产伦精品一区二区三区视频小说| 国产乱码一区二区三区| 97久久精品无码一区二区天美| 亚洲av无码一区二区三区不卡 | 日韩成人一区ftp在线播放| 精品国产乱子伦一区二区三区| 人妻AV一区二区三区精品 | 一区二区三区精品高清视频免费在线播放 | 国产精品亚洲产品一区二区三区| 日本一区二区三区精品视频| 精品国产天堂综合一区在线| 濑亚美莉在线视频一区| 精品无码国产一区二区三区麻豆| 久久人妻无码一区二区| 国产成人午夜精品一区二区三区| AV天堂午夜精品一区二区三区| 色国产在线视频一区| 精品女同一区二区三区在线| 男人免费视频一区二区在线观看 | 午夜福利国产一区二区| 亚洲国产激情一区二区三区| 国产午夜精品一区理论片飘花| 伊人激情AV一区二区三区| 91精品一区二区三区久久久久| 精品香蕉一区二区三区| 日本在线视频一区二区三区| 亚洲一区二区视频在线观看| 精品无码人妻一区二区三区不卡 |