1、動畫
創(chuàng)新互聯(lián)建站自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作、做網(wǎng)站、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。
動畫有很多種,比如側(cè)邊欄菜單的滑入滑出、元素的響應動畫、頁面切換之間的過場等等,在H5之下的眾多實現(xiàn)方法都沒有辦法達到純原生的性能。一般這些的話有幾種不同的選擇:css3動畫、javascript動畫、原生動畫。
css3動畫非常的消耗性能,如果某一個元素用到css3動畫可能還看不出來,但大面積或過場使用css3動畫會讓app低端手機體驗非常差。最好的選擇一般是通過框架調(diào)用底層的動畫,但不管怎么樣等于在原來的代碼上包上了一層,性能還是不可避免的受到影響。
比如在一個新頁面的載入上,如果調(diào)用底層動畫要考慮的問題有兩個,一個是本身資源頁面的渲染問題,另一個是遠程數(shù)據(jù)的獲取。即便是這些動畫能夠很快的響應,但大量的css頁面會導致渲染卡頓,滑入時可能會有白屏/機器卡頓的現(xiàn)象。為了解決這些性能問題又必須要用到預加載或模擬動畫。即便是這樣,滑入滑出的動畫在低端的安卓機器上還是有很多問題,如果獲取服務端數(shù)據(jù)處理的方式不合適,卡頓白屏的現(xiàn)象會更嚴重。具體看下面的數(shù)據(jù)獲取方式。
2、獲取服務端數(shù)據(jù)
首先要接受的是,這里的數(shù)據(jù)獲取都是在資源頁面上異步完成的,因為只有這樣才能讓這些資源頁面完成預加載或者渲染。但是異步拿到的數(shù)據(jù)在填入頁面中時可能會涉及DOM操作,眾所周知,DOM操作非常消耗性能,如果頁面小還好,頁面稍大數(shù)據(jù)稍微復雜一點,頻繁的DOM操作會導致明顯的閃白。而且最重要的一點是,如果頁面加載進來之后數(shù)據(jù)更新的速度太慢,也會讓頁面模板等待很長時間,對用戶體驗又不友好,總不能每次打開都像瀏覽器一樣等待刷新是吧。
這個問題如果沒有得到解決,H5APP是很難承擔大規(guī)模數(shù)據(jù)的頁面,在它們之中頻繁切換更是難上加難,那么肯定有人也會想到用MVVM的方式,其實我也寫過一些基于MVVM的H5APP,相對來說它們獲取數(shù)據(jù)和更新數(shù)據(jù)的方式更敏捷更科學,但寫的過程中又要注意很多H5獨有的問題,這些問題在下面的頁面切換里來講。
3、頁面切換
上面我們看到了幾種不錯的實現(xiàn)方式,比如預加載和模擬動畫,甚至有批量的預加載,批量的截圖模擬動畫等等,雖然看起來很友好解決了不少問題,但事實上如果頁面足夠多就會引發(fā)另一個問題——頁面的生存周期。
試想一下,如果引導頁或者主頁面緩存了5個子頁面的資源,在跳轉(zhuǎn)到響應的子頁面時又會緩存這些子頁面的下級頁面資源,如此反復肯定會占據(jù)大量內(nèi)存使APP的體驗下降。那么怎么知道那些頁面是需要的,最多緩存多少頁面,什么時候結(jié)束哪些頁面的生存周期呢?在我用過的很多H5APP的框架里都沒有對這些問題有一個完美的解答,因此在頁面較多內(nèi)容較多的APP中可能會因這些資源分配的問題降低性能。
這時候我們回過頭來再看看MVVM的數(shù)據(jù)加載問題,實際上不管哪個MVVM框架,寫過的人都知道管理這種新型的前端代碼最重要的問題是內(nèi)存的問題,你既要保證代碼寫的足夠優(yōu)雅沒有任何內(nèi)存泄露問題,也要考慮到在頁面生存周期結(jié)束時它們的控制器/頁面資源是否得到釋放,這對全局有沒有什么影響,在多個請求時也要合理的分配資源,甚至是復用這些父級頁面?zhèn)鬟^來的緩存資源等等。較小的APP可能并不會有這些問題,如果你想用純H5來開發(fā)大型APP,這很可能會浪費你很多時間——而且結(jié)果還不會讓你滿意。
4、Android/iOS的區(qū)別
很多人都說純H5APP一次編寫就能編譯Android/iOS兩種不同的APP,大大降低了成本。實際上這個觀點本身就是值得懷疑的,如果你寫過這類APP就能明白我在說什么,它們既不省事,又存在很多BUG,調(diào)試時尤其繁瑣。舉一個很簡單的例子,Android和iOS在返回上一頁的處理方式上就有明顯的區(qū)別,iOS的頂部bar在全屏下怎樣處理,Android機器出現(xiàn)smart bar怎樣處理頁面的布局,調(diào)用底層硬件時怎樣區(qū)分不同的場景等等,你需要寫一個又一個機型和系統(tǒng)的判斷,然后分別在Android和iOS下調(diào)試,最后你卻發(fā)現(xiàn)這并沒有卵用,累的要死卻什么沒學到,只有一堆不知道什么時候會過時的經(jīng)驗。
現(xiàn)在做H5混合APP開發(fā)的人很多,但是純H5卻很年輕,很多問題都沒有很好的解決,這幾個是我在做這些APP時考慮最多的問題。當然大家也不必擔心,隨著ES6的推行,硬件發(fā)展越來越快,純H5APP未必沒有一席之地。最后說一個很少人注意到的H5優(yōu)勢,大家大談H5APP時都是快速開發(fā)、低成本、多平臺等等,但我卻覺得它和很多APP開發(fā)方式相比有一個不同之處——圖文混合的排版。正是這些復雜多變的CSS樣式消耗了性能,但是它帶來了排版的多樣性,能夠細致到每一個字寬行高和風格的像素級處理,才是H5的優(yōu)異之處。
根據(jù)優(yōu)勢選著你覺得合適自己的:
bootstrap:優(yōu)勢與劣勢
bootstrap
2以后的版本不支持IE6。當你的網(wǎng)站需要支持ie6的時候,這時是缺點。當網(wǎng)站不需要支持ie6.減少了兼容代碼的處理,馬上又變成了優(yōu)點。
總體而已,Bootstrap 屬于前端 ui
庫,通過現(xiàn)成的ui組件能夠迅速搭建前端頁面。同時還可以用less重新設(shè)計組件。對于前端技術(shù)一般的后臺工程師,省去了很多編寫前端處理時的痛苦。個人使用搭個博客什么的比較方便。
相對于公司,直接使用 Bootstrap
感覺不多,大公司都有自己的前端開發(fā)設(shè)計人員,也會設(shè)計自己的css庫。當然,Bootstrap開源,對于學習如何組織css還是很有必要。
個人認為:bootstrap最大的缺點在于 --------- 大家做出來的網(wǎng)站都一個摸樣。
html5:優(yōu)勢與劣勢
1、擺脫對平臺的依賴
HTML5可以讓你擺脫對平臺的依賴,用戶打開瀏覽器,直接就可以訪問你的應用,而不需要經(jīng)過各種Store的審核。
2、實時更新
實時更新,通常平臺的審核都需要七個工作日左右的時間,如果你發(fā)布之后發(fā)現(xiàn)問題怎么辦?Web方式就不存在這種問題。
3、離線使用
用戶可以離線使用,更新下載量及少,可以全部更新,也可以選擇替換部分文件。
4、代碼更安全安全
使用HTML5,代碼更安全安全。眾所周知Web應用有一個很大的問題就是代碼安全的問題,但現(xiàn)在HTML5可以將Web代碼全部加密,本地應用解密后再運行,大大的提供了代碼的安全性。
5、跨平臺
HTML5可以做到跨平臺,多數(shù)核心代碼不用重寫,Javascript的代碼用得好的話,在許多地方都可以用到,包括移動應用、移動網(wǎng)站、PC網(wǎng)站、各種瀏覽器插件,甚至可以用WebKit封裝作為跨平臺的應用程序。誠然,這種方式并非完全跨平臺,但這樣也足以減少很多工作量了,特別是后期的維護。
6、可以充分利用Native
HTML5可以通過瀏覽器作為中介充分利用Native的好處,比如說可以使用GPS、照相機、本地相冊、讀取本地聯(lián)系人,也可以使用推送功能等,最重要的是,某些Web無法實現(xiàn)的功能,我們可以利用Native來實現(xiàn)。
HTML5 可能對移動 Web 帶來更多好處,原因是,現(xiàn)在的移動 Web,iPhone 占主導地位,而 iPHone 是不支持 Flash
的。HTML5 還會讓其它平臺的移動瀏覽器有更快的網(wǎng)頁加載速度。另一個好處是 SEO,Google
4月9號宣布,將頁面加載速度作為搜索排名的一個因素,因此,基于 HTML5 的頁面也會因加載速度更快而受益。
不過,和任何新技術(shù)的降臨一樣,其中也會牽扯到一些問題,對 Web
設(shè)計者而言,最大的一個問題就是因為這些新標簽的引入,各瀏覽器之間將缺少一種統(tǒng)一的數(shù)據(jù)描述格式。
在 HTML5 被廣泛采用之前,我們還無法完全知道 HTML5
代碼將帶來的好與壞,總體來說,對開發(fā)者而言,這將是一個巨大的變化,而對圖形設(shè)計師而言,還不明朗。
隨著HTML5和Node.js的流行,Javascript這門在互聯(lián)網(wǎng)初期就已誕生的語言正迸發(fā)出勃勃生機,Javascript將前端和后端開發(fā)統(tǒng)一起來,“一切皆為JS”看起來只是時間的問題。唯一的障礙是在移動端,因為無論是Android還是iOS平臺,當前仍是原生應用大行其道。HTML5曾經(jīng)被寄予厚望過,但是以Facebook為代表的一批公司在移動端對HTML5技術(shù)進行實踐的心酸血淚史表明,HTML5可以是原生應用開發(fā)的一種有效補充,但遠不足以替代原生。但是現(xiàn)在,隨著iMAG.js的漸漸流行,這種狀況正在發(fā)生改變。
iMAG.js是國內(nèi)的愛碼哥移動平臺推出的Javscript移動跨平臺開發(fā)框架,它的特點簡單高效,同時又功能強大,可以用Javascript來替代原生開發(fā)。iMAG.js的原理和在服務器端運行的Node.js有些相似,都是封裝了Javascript引擎,用Javascript去調(diào)用底層的API接口。不同的是因為移動應用的控件主要是UI模塊、用戶交互界面開發(fā),iMAG.js為此引入了XML模板技術(shù),XML和Javascript結(jié)合,這樣很適合手機界面的展示。
H5開發(fā)的web APP和原生APP的區(qū)別有以下幾個方面:
一、開發(fā)方面
原生App
⊙ 每一種移動操作系統(tǒng)都需要獨立的開發(fā)項目
⊙ 每種平臺都需要獨立的開發(fā)語言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等
⊙ 需要使用各自的軟件開發(fā)包,開發(fā)工具以及各自的控件
移動Web App
⊙ 因為運行在移動設(shè)備的瀏覽器上,所以只需要一個開發(fā)項目
⊙ 這種應用可以使用HTML5,CSS3以及JavaScript以及服務器端語言來完成(PHP,Ruby on Rails,Python)
⊙ 這里可沒有標準的SDK,基本任意選擇別忘了有一些跨平臺的開發(fā)工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。
二、能力方面
原生App
⊙ 能夠與移動硬件設(shè)備的底層功能,比如個人信息,攝像頭以及重力加速器等等
移動Web App
⊙ 只能使用有限的移動硬件設(shè)備功能。
三、獲取方法
原生App
⊙ 直接下載到設(shè)備
⊙ 以獨立的應用程序運行(并不需要瀏覽器)
⊙ 用戶必須手動去下載并安裝這些原生App
⊙ 有一些商店與賣場來幫助用戶尋找你的App,目前app市場不計其數(shù)
移動Web App
⊙ 從移動設(shè)備上的瀏覽器訪問
⊙ 不需要安裝額外的軟件
⊙ 軟件更新只需要服務器就夠了
⊙ 因為現(xiàn)在沒有什么商品或賣場提供這種App,所以如何搜索這些移動Web App相當不簡單。
四、版本控制
原生App
⊙ 用戶可以自由地選擇是否更新軟件版本,所以會出現(xiàn)不同用戶同時使用不同版本的情況
移動Web App
⊙ 所有的用戶都是用同樣的版本
五、優(yōu)勢
原生App
⊙ 比移動Web App運行快
⊙ 一些商店與賣場會幫助用戶尋找原生App
⊙ 官方賣場的應用審核流程會保證讓用戶得到高質(zhì)量以及安全的App
⊙ 官方會發(fā)布很多開發(fā)工具或者人工支持來幫助你的開發(fā)
移動Web App
⊙ 跨平臺開發(fā)
⊙ 用戶不需要去賣場來下載安裝App
⊙ 任何時候都可以發(fā)布App,因為根本不需要官方賣場的審核
⊙ 如果你已經(jīng)有了一個Web App,你可以使用 responsive web design來輔助改進
六、缺陷
原生App
⊙ 開發(fā)成本高,尤其是當需要多種移動設(shè)備來測試時
⊙ 因為是不同的開發(fā)語言,所以開發(fā),維護成本也高
⊙ 因為用戶使用的App版本不同,所以你維護起來很困難
⊙ 官方賣場審核流程復雜且慢,會嚴重影響你的發(fā)布進程
移動Web App
⊙ 無法使用很多移動硬件設(shè)備的獨特功能
⊙ 要同時支持多種移動設(shè)備的瀏覽器讓開發(fā)維護的成本也不低
⊙ 如果用戶使用更多的新型瀏覽器,那問題就更不好處理了
⊙ 對于用戶來說,這種App很難被用戶發(fā)現(xiàn)
附:原生App 與 移動Web App:您如何選擇?
所以在你準備做移動App時,你應該先問問自己以下幾個問題:
1. 你的應用是否需要使用某些設(shè)備的特殊功能,比如攝像頭,攝像頭閃光燈或者重力加速器
2. 你的開發(fā)預算是多少?
3. 你的應用是否一定需要網(wǎng)絡(luò)
4. 你的應用的目標硬件設(shè)備是所有的移動設(shè)備還是僅僅只是一部分而已
5. 你自己已經(jīng)熟悉的開發(fā)語言
6. 這個應用對于性能要求是否苛刻
7. 如何靠這個應用贏利
給大家一個簡單的辦法。特別好用。?
微信里面,你下拉看到 有網(wǎng)址,就是H5。沒有就是na的。
頂部有分享的就是H5的,沒有就是原生的。
然后談談什么是na什么是H5,談談兩者的優(yōu)缺點。
1、在跨平臺上,HTML5勝出。
HTML5采用網(wǎng)絡(luò)通用語言,app開發(fā)公司不用考慮終端設(shè)備或者操作系統(tǒng)的不同。目前,W3C(萬維網(wǎng)聯(lián)盟World Wide Web Consortium,簡稱W3C)正在與汽車業(yè)、出版業(yè)、電視業(yè)進行討論,將web引入新的設(shè)備平臺中。隨著平臺逐漸豐富,這方面的成本問題將會日益凸顯。
2、在用戶體驗和表現(xiàn)上原生APP開發(fā)勝出。
在用戶體驗和表現(xiàn)這個方面,app開發(fā)公司的HTML5仍然面臨著不同移動終端設(shè)備本地瀏覽器的功能接入問題,同時在提供用戶展示圖形界面和數(shù)據(jù)展現(xiàn)的豐富性方面還有不足,繼續(xù)得到提高。
3、在開發(fā)速度和成本方面,HTML5勝出。
app開發(fā)公司,HTML5的開發(fā)確實比原生開發(fā)更節(jié)省時間和人力,開發(fā)周期相對較短,人力投入也比較少,畢竟HTML5有著跨平臺帶來的無可比擬的好處。不需要投入兩個團隊或者更多的人去開發(fā)。
4、在版本控制和BUG修復方面,HTML5勝出。
HTML5是web網(wǎng)頁端的內(nèi)容,如果出現(xiàn)BUG可以不用迭代版本,只需在后臺修改即可修復bug,這是原生APP開發(fā)所不能做到的。
5、在變現(xiàn)能力方面,原生APP開發(fā)勝出。
原生應用的分發(fā)平臺,如App Store和Google Play,目前是獲得收入的較為成熟的商業(yè)模式;而HTML5應用,除了付費下載以外,還沒有形成其他成熟的商業(yè)模式。
6、對于碎片化挑戰(zhàn)而言,HTML5勝出。
盡管二者同樣面臨著嚴重的碎片化問題,不過HTML5先天具備的跨平臺特性,可以在這方面占據(jù)先機。
HTML5的定稿就目前而言 并不意味這原生應用生態(tài)系統(tǒng)要顛覆 就拿IOS系統(tǒng)來舉列子
1.原生應用能夠突破其局限性
人們之所以認為HTML5將取代iPad和iPhone設(shè)備中的原生應用是因為它的網(wǎng)絡(luò)技術(shù)正在趕超iOS軟件的功能。雖然這是事實,但是HTML5永遠也不可能與原生應用相提并論,應為蘋果始終掌握著主要控制權(quán),它可以決定哪些第三方應用軟件可以在iOS設(shè)備上運行。iOS每一次重大更新都能給開發(fā)者帶來新的API,而每一代新的硬件也都提供了新的網(wǎng)絡(luò)連接選項,收音機以及其它硬件功能。舉個例子來說,iOS
5便推出了1500款新型API,包括iCloud Storage,Newsstand以及Twitter。
只有蘋果能夠決定它的軟件可以做什么或不能做什么,以及何種硬件可以與之兼容;但是因為HTML5是基于所有瀏覽器而設(shè)置的,所以要求更多的技術(shù)妥協(xié)。同時,HTML5如果要使用iOS硬件的所用功能也擁有許多局限因素,盡管蘋果已經(jīng)采取了一些改善措施,例如允許Safari使用更多的本地設(shè)備內(nèi)存以及地理定位服務。雖然如此看來好像是HTML5正在迎頭趕上本機應用,但是事實上它卻永遠不可能超越它們,因為蘋果的移動技術(shù)還在不斷進化,并且通過iOS
SDK給原生應用開發(fā)者提供更多的API選擇。
2.原生應用才剛超越移動網(wǎng)頁
在智能手機和平板電腦設(shè)備中,手機應用剛剛才開始趕超移動網(wǎng)頁,其人氣正處于高漲階段。應用商店的出現(xiàn)更是助長了這種趨勢,目前尚無跡象表明這種趨勢會放緩或者扭轉(zhuǎn),雖然Vudu(游戲邦注:一種新型電視節(jié)目服務),亞馬遜以及《金融時報》等公司最近都繞開蘋果App
Store,創(chuàng)建了HTML5網(wǎng)頁應用。
顯然,很多公司寧愿選擇HTML5而不是蘋果的原生應用是因為,基于網(wǎng)頁的產(chǎn)品讓他們繞過蘋果這個中間商,避開蘋果營收抽成,直接獲取更大的利潤,并且能夠針對多個平臺一次性開發(fā)產(chǎn)品。但是從用戶體驗的角度來看,絕大多數(shù)用戶可能并不會支持應用大規(guī)模向HTML5領(lǐng)域遷移。雖然市場上將會有越來越多HTML5產(chǎn)品,但是原生應用的光芒也不會輕易被掩蓋,因為它有穩(wěn)定的離線訪問,特定的界面,可自由訪問特定硬件和軟件等功能。
我認為在今后幾年里,原生應用不會被HTML5顛覆,HTML5無法對此造成嚴重影響。
你好,原生的html挺好用的,性能也是很不錯的,用框架的好處可以快速開發(fā),節(jié)省開發(fā)的時間,另外框架中有一套完善的html5處理系統(tǒng),如果自己開發(fā),你會發(fā)現(xiàn),什么都要你來做,并且重復性的代碼也多,慢慢的你也會形成自己的框架的
希望可以幫助到你
標題名稱:原生html5,原生html引入vue
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article2/dsdgjoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站策劃、標簽優(yōu)化、ChatGPT、動態(tài)網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)