重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、动画
创新互联建站自成立以来,一直致力于为企业提供从网站策划、网站设计、网站制作、做网站、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
动画有很多种,比如侧边栏菜单的滑入滑出、元素的响应动画、页面切换之间的过场等等,在H5之下的众多实现方法都没有办法达到纯原生的性能。一般这些的话有几种不同的选择:css3动画、javascript动画、原生动画。
css3动画非常的消耗性能,如果某一个元素用到css3动画可能还看不出来,但大面积或过场使用css3动画会让app低端手机体验非常差。最好的选择一般是通过框架调用底层的动画,但不管怎么样等于在原来的代码上包上了一层,性能还是不可避免的受到影响。
比如在一个新页面的载入上,如果调用底层动画要考虑的问题有两个,一个是本身资源页面的渲染问题,另一个是远程数据的获取。即便是这些动画能够很快的响应,但大量的css页面会导致渲染卡顿,滑入时可能会有白屏/机器卡顿的现象。为了解决这些性能问题又必须要用到预加载或模拟动画。即便是这样,滑入滑出的动画在低端的安卓机器上还是有很多问题,如果获取服务端数据处理的方式不合适,卡顿白屏的现象会更严重。具体看下面的数据获取方式。
2、获取服务端数据
首先要接受的是,这里的数据获取都是在资源页面上异步完成的,因为只有这样才能让这些资源页面完成预加载或者渲染。但是异步拿到的数据在填入页面中时可能会涉及DOM操作,众所周知,DOM操作非常消耗性能,如果页面小还好,页面稍大数据稍微复杂一点,频繁的DOM操作会导致明显的闪白。而且最重要的一点是,如果页面加载进来之后数据更新的速度太慢,也会让页面模板等待很长时间,对用户体验又不友好,总不能每次打开都像浏览器一样等待刷新是吧。
这个问题如果没有得到解决,H5APP是很难承担大规模数据的页面,在它们之中频繁切换更是难上加难,那么肯定有人也会想到用MVVM的方式,其实我也写过一些基于MVVM的H5APP,相对来说它们获取数据和更新数据的方式更敏捷更科学,但写的过程中又要注意很多H5独有的问题,这些问题在下面的页面切换里来讲。
3、页面切换
上面我们看到了几种不错的实现方式,比如预加载和模拟动画,甚至有批量的预加载,批量的截图模拟动画等等,虽然看起来很友好解决了不少问题,但事实上如果页面足够多就会引发另一个问题——页面的生存周期。
试想一下,如果引导页或者主页面缓存了5个子页面的资源,在跳转到响应的子页面时又会缓存这些子页面的下级页面资源,如此反复肯定会占据大量内存使APP的体验下降。那么怎么知道那些页面是需要的,最多缓存多少页面,什么时候结束哪些页面的生存周期呢?在我用过的很多H5APP的框架里都没有对这些问题有一个完美的解答,因此在页面较多内容较多的APP中可能会因这些资源分配的问题降低性能。
这时候我们回过头来再看看MVVM的数据加载问题,实际上不管哪个MVVM框架,写过的人都知道管理这种新型的前端代码最重要的问题是内存的问题,你既要保证代码写的足够优雅没有任何内存泄露问题,也要考虑到在页面生存周期结束时它们的控制器/页面资源是否得到释放,这对全局有没有什么影响,在多个请求时也要合理的分配资源,甚至是复用这些父级页面传过来的缓存资源等等。较小的APP可能并不会有这些问题,如果你想用纯H5来开发大型APP,这很可能会浪费你很多时间——而且结果还不会让你满意。
4、Android/iOS的区别
很多人都说纯H5APP一次编写就能编译Android/iOS两种不同的APP,大大降低了成本。实际上这个观点本身就是值得怀疑的,如果你写过这类APP就能明白我在说什么,它们既不省事,又存在很多BUG,调试时尤其繁琐。举一个很简单的例子,Android和iOS在返回上一页的处理方式上就有明显的区别,iOS的顶部bar在全屏下怎样处理,Android机器出现smart bar怎样处理页面的布局,调用底层硬件时怎样区分不同的场景等等,你需要写一个又一个机型和系统的判断,然后分别在Android和iOS下调试,最后你却发现这并没有卵用,累的要死却什么没学到,只有一堆不知道什么时候会过时的经验。
现在做H5混合APP开发的人很多,但是纯H5却很年轻,很多问题都没有很好的解决,这几个是我在做这些APP时考虑最多的问题。当然大家也不必担心,随着ES6的推行,硬件发展越来越快,纯H5APP未必没有一席之地。最后说一个很少人注意到的H5优势,大家大谈H5APP时都是快速开发、低成本、多平台等等,但我却觉得它和很多APP开发方式相比有一个不同之处——图文混合的排版。正是这些复杂多变的CSS样式消耗了性能,但是它带来了排版的多样性,能够细致到每一个字宽行高和风格的像素级处理,才是H5的优异之处。
根据优势选着你觉得合适自己的:
bootstrap:优势与劣势
bootstrap
2以后的版本不支持IE6。当你的网站需要支持ie6的时候,这时是缺点。当网站不需要支持ie6.减少了兼容代码的处理,马上又变成了优点。
总体而已,Bootstrap 属于前端 ui
库,通过现成的ui组件能够迅速搭建前端页面。同时还可以用less重新设计组件。对于前端技术一般的后台工程师,省去了很多编写前端处理时的痛苦。个人使用搭个博客什么的比较方便。
相对于公司,直接使用 Bootstrap
感觉不多,大公司都有自己的前端开发设计人员,也会设计自己的css库。当然,Bootstrap开源,对于学习如何组织css还是很有必要。
个人认为:bootstrap最大的缺点在于 --------- 大家做出来的网站都一个摸样。
html5:优势与劣势
1、摆脱对平台的依赖
HTML5可以让你摆脱对平台的依赖,用户打开浏览器,直接就可以访问你的应用,而不需要经过各种Store的审核。
2、实时更新
实时更新,通常平台的审核都需要七个工作日左右的时间,如果你发布之后发现问题怎么办?Web方式就不存在这种问题。
3、离线使用
用户可以离线使用,更新下载量及少,可以全部更新,也可以选择替换部分文件。
4、代码更安全安全
使用HTML5,代码更安全安全。众所周知Web应用有一个很大的问题就是代码安全的问题,但现在HTML5可以将Web代码全部加密,本地应用解密后再运行,大大的提供了代码的安全性。
5、跨平台
HTML5可以做到跨平台,多数核心代码不用重写,Javascript的代码用得好的话,在许多地方都可以用到,包括移动应用、移动网站、PC网站、各种浏览器插件,甚至可以用WebKit封装作为跨平台的应用程序。诚然,这种方式并非完全跨平台,但这样也足以减少很多工作量了,特别是后期的维护。
6、可以充分利用Native
HTML5可以通过浏览器作为中介充分利用Native的好处,比如说可以使用GPS、照相机、本地相册、读取本地联系人,也可以使用推送功能等,最重要的是,某些Web无法实现的功能,我们可以利用Native来实现。
HTML5 可能对移动 Web 带来更多好处,原因是,现在的移动 Web,iPhone 占主导地位,而 iPHone 是不支持 Flash
的。HTML5 还会让其它平台的移动浏览器有更快的网页加载速度。另一个好处是 SEO,Google
4月9号宣布,将页面加载速度作为搜索排名的一个因素,因此,基于 HTML5 的页面也会因加载速度更快而受益。
不过,和任何新技术的降临一样,其中也会牵扯到一些问题,对 Web
设计者而言,最大的一个问题就是因为这些新标签的引入,各浏览器之间将缺少一种统一的数据描述格式。
在 HTML5 被广泛采用之前,我们还无法完全知道 HTML5
代码将带来的好与坏,总体来说,对开发者而言,这将是一个巨大的变化,而对图形设计师而言,还不明朗。
随着HTML5和Node.js的流行,Javascript这门在互联网初期就已诞生的语言正迸发出勃勃生机,Javascript将前端和后端开发统一起来,“一切皆为JS”看起来只是时间的问题。唯一的障碍是在移动端,因为无论是Android还是iOS平台,当前仍是原生应用大行其道。HTML5曾经被寄予厚望过,但是以Facebook为代表的一批公司在移动端对HTML5技术进行实践的心酸血泪史表明,HTML5可以是原生应用开发的一种有效补充,但远不足以替代原生。但是现在,随着iMAG.js的渐渐流行,这种状况正在发生改变。
iMAG.js是国内的爱码哥移动平台推出的Javscript移动跨平台开发框架,它的特点简单高效,同时又功能强大,可以用Javascript来替代原生开发。iMAG.js的原理和在服务器端运行的Node.js有些相似,都是封装了Javascript引擎,用Javascript去调用底层的API接口。不同的是因为移动应用的控件主要是UI模块、用户交互界面开发,iMAG.js为此引入了XML模板技术,XML和Javascript结合,这样很适合手机界面的展示。
H5开发的web APP和原生APP的区别有以下几个方面:
一、开发方面
原生App
⊙ 每一种移动操作系统都需要独立的开发项目
⊙ 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等
⊙ 需要使用各自的软件开发包,开发工具以及各自的控件
移动Web App
⊙ 因为运行在移动设备的浏览器上,所以只需要一个开发项目
⊙ 这种应用可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Ruby on Rails,Python)
⊙ 这里可没有标准的SDK,基本任意选择别忘了有一些跨平台的开发工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。
二、能力方面
原生App
⊙ 能够与移动硬件设备的底层功能,比如个人信息,摄像头以及重力加速器等等
移动Web App
⊙ 只能使用有限的移动硬件设备功能。
三、获取方法
原生App
⊙ 直接下载到设备
⊙ 以独立的应用程序运行(并不需要浏览器)
⊙ 用户必须手动去下载并安装这些原生App
⊙ 有一些商店与卖场来帮助用户寻找你的App,目前app市场不计其数
移动Web App
⊙ 从移动设备上的浏览器访问
⊙ 不需要安装额外的软件
⊙ 软件更新只需要服务器就够了
⊙ 因为现在没有什么商品或卖场提供这种App,所以如何搜索这些移动Web App相当不简单。
四、版本控制
原生App
⊙ 用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况
移动Web App
⊙ 所有的用户都是用同样的版本
五、优势
原生App
⊙ 比移动Web App运行快
⊙ 一些商店与卖场会帮助用户寻找原生App
⊙ 官方卖场的应用审核流程会保证让用户得到高质量以及安全的App
⊙ 官方会发布很多开发工具或者人工支持来帮助你的开发
移动Web App
⊙ 跨平台开发
⊙ 用户不需要去卖场来下载安装App
⊙ 任何时候都可以发布App,因为根本不需要官方卖场的审核
⊙ 如果你已经有了一个Web App,你可以使用 responsive web design来辅助改进
六、缺陷
原生App
⊙ 开发成本高,尤其是当需要多种移动设备来测试时
⊙ 因为是不同的开发语言,所以开发,维护成本也高
⊙ 因为用户使用的App版本不同,所以你维护起来很困难
⊙ 官方卖场审核流程复杂且慢,会严重影响你的发布进程
移动Web App
⊙ 无法使用很多移动硬件设备的独特功能
⊙ 要同时支持多种移动设备的浏览器让开发维护的成本也不低
⊙ 如果用户使用更多的新型浏览器,那问题就更不好处理了
⊙ 对于用户来说,这种App很难被用户发现
附:原生App 与 移动Web App:您如何选择?
所以在你准备做移动App时,你应该先问问自己以下几个问题:
1. 你的应用是否需要使用某些设备的特殊功能,比如摄像头,摄像头闪光灯或者重力加速器
2. 你的开发预算是多少?
3. 你的应用是否一定需要网络
4. 你的应用的目标硬件设备是所有的移动设备还是仅仅只是一部分而已
5. 你自己已经熟悉的开发语言
6. 这个应用对于性能要求是否苛刻
7. 如何靠这个应用赢利
给大家一个简单的办法。特别好用。
微信里面,你下拉看到 有网址,就是H5。没有就是na的。
顶部有分享的就是H5的,没有就是原生的。
然后谈谈什么是na什么是H5,谈谈两者的优缺点。
1、在跨平台上,HTML5胜出。
HTML5采用网络通用语言,app开发公司不用考虑终端设备或者操作系统的不同。目前,W3C(万维网联盟World Wide Web Consortium,简称W3C)正在与汽车业、出版业、电视业进行讨论,将web引入新的设备平台中。随着平台逐渐丰富,这方面的成本问题将会日益凸显。
2、在用户体验和表现上原生APP开发胜出。
在用户体验和表现这个方面,app开发公司的HTML5仍然面临着不同移动终端设备本地浏览器的功能接入问题,同时在提供用户展示图形界面和数据展现的丰富性方面还有不足,继续得到提高。
3、在开发速度和成本方面,HTML5胜出。
app开发公司,HTML5的开发确实比原生开发更节省时间和人力,开发周期相对较短,人力投入也比较少,毕竟HTML5有着跨平台带来的无可比拟的好处。不需要投入两个团队或者更多的人去开发。
4、在版本控制和BUG修复方面,HTML5胜出。
HTML5是web网页端的内容,如果出现BUG可以不用迭代版本,只需在后台修改即可修复bug,这是原生APP开发所不能做到的。
5、在变现能力方面,原生APP开发胜出。
原生应用的分发平台,如App Store和Google Play,目前是获得收入的较为成熟的商业模式;而HTML5应用,除了付费下载以外,还没有形成其他成熟的商业模式。
6、对于碎片化挑战而言,HTML5胜出。
尽管二者同样面临着严重的碎片化问题,不过HTML5先天具备的跨平台特性,可以在这方面占据先机。
HTML5的定稿就目前而言 并不意味这原生应用生态系统要颠覆 就拿IOS系统来举列子
1.原生应用能够突破其局限性
人们之所以认为HTML5将取代iPad和iPhone设备中的原生应用是因为它的网络技术正在赶超iOS软件的功能。虽然这是事实,但是HTML5永远也不可能与原生应用相提并论,应为苹果始终掌握着主要控制权,它可以决定哪些第三方应用软件可以在iOS设备上运行。iOS每一次重大更新都能给开发者带来新的API,而每一代新的硬件也都提供了新的网络连接选项,收音机以及其它硬件功能。举个例子来说,iOS
5便推出了1500款新型API,包括iCloud Storage,Newsstand以及Twitter。
只有苹果能够决定它的软件可以做什么或不能做什么,以及何种硬件可以与之兼容;但是因为HTML5是基于所有浏览器而设置的,所以要求更多的技术妥协。同时,HTML5如果要使用iOS硬件的所用功能也拥有许多局限因素,尽管苹果已经采取了一些改善措施,例如允许Safari使用更多的本地设备内存以及地理定位服务。虽然如此看来好像是HTML5正在迎头赶上本机应用,但是事实上它却永远不可能超越它们,因为苹果的移动技术还在不断进化,并且通过iOS
SDK给原生应用开发者提供更多的API选择。
2.原生应用才刚超越移动网页
在智能手机和平板电脑设备中,手机应用刚刚才开始赶超移动网页,其人气正处于高涨阶段。应用商店的出现更是助长了这种趋势,目前尚无迹象表明这种趋势会放缓或者扭转,虽然Vudu(游戏邦注:一种新型电视节目服务),亚马逊以及《金融时报》等公司最近都绕开苹果App
Store,创建了HTML5网页应用。
显然,很多公司宁愿选择HTML5而不是苹果的原生应用是因为,基于网页的产品让他们绕过苹果这个中间商,避开苹果营收抽成,直接获取更大的利润,并且能够针对多个平台一次性开发产品。但是从用户体验的角度来看,绝大多数用户可能并不会支持应用大规模向HTML5领域迁移。虽然市场上将会有越来越多HTML5产品,但是原生应用的光芒也不会轻易被掩盖,因为它有稳定的离线访问,特定的界面,可自由访问特定硬件和软件等功能。
我认为在今后几年里,原生应用不会被HTML5颠覆,HTML5无法对此造成严重影响。
你好,原生的html挺好用的,性能也是很不错的,用框架的好处可以快速开发,节省开发的时间,另外框架中有一套完善的html5处理系统,如果自己开发,你会发现,什么都要你来做,并且重复性的代码也多,慢慢的你也会形成自己的框架的
希望可以帮助到你