从几篇文字得到关于web app开发的性能问题的答案
1. http://blogs.adobe.com/creativecloud/are-mobile-web-apps-slow/
2. http://software.intel.com/zh-cn/articles/phonegap-html5 (翻译:http://www.36kr.com/p/205301.html)
3. http://h5dev.uc.cn/article-23-1.html (不知是否原创站点)
Drew Crawford 的《Web App真的很慢》一文一经发表即引来轰动讨论,无数的评论、tweet 皆围绕 web app 与 native app 性能之问相持不下。依据 Drew 的观点——web app 由 Javascript 写成,但Javascript对于Web app来说是不可取的,因为速度太慢,而且影响体验,这个状况在中短期内(5-10 年)都不会有显著改善。
对于开发者来说,产出效率是很重要的衡量指标。
以许多开发者有了使用 JS 的动力,因为 JS 使用起来简单易行,兼有动态属性,并且 JS 语言支持跨平台与多种设备,但 native 代码只针对某一个特定的平台。因此哪怕在性能上略有丢失,多平台和广泛的受众到达仍然会吸引许多开发者选择 JS。
需要从html、js、css三方面注意避免性能的陷阱。
我们分析了目前Google play, 安卓市场,豌豆荚市场,机锋市场的下载量前300名的应用,以及每个分类的前50名的应用进行分析,发现以下7个应用采用了PhoneGap开发:
来自国内市场的有5个应用.当然,还有更多的纯HTML5应用程序没有计算在内,也没有计算来自iOS的phoneGap应用。
另外还有一些经验之谈。
1. 将for循环条件语句中的.length属性存入一个局部变量
2. 用className属性取代其他style属性
3. appendChild()的部分使用document fragments来修改DOM元素
4. CSS 中将 2D的CSS变化转化为 3D的CSS变换
5. 在HTML文档中,将inline的 JavaScript代码转化为独立的JavaScript文件
6. 由于脚本的阻塞特性,将JavaScript脚本放在文件的最底端以及成组加载
从几篇文字得到关于web app开发的性能问题的答案的更多相关文章
- 微信公众平台开发:Web App开发入门
WebApp与Native App有何区别呢?Native App:1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C.2.更新体验较差.同时也比较麻烦.每一次发布新的版 ...
- 前端读者 | Web App开发入门
本文来自互联网 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词 - Web App(意为基于WEB形式的应用程序).业界关于Web App与Nativ ...
- 移动端web app开发学习笔记
移动web和pc端web以及web app 移动web开发跟web前端开发差别很小,使用的技术都是html+css+js.手机网页可以理解成pc网页的缩小版加一些触摸特性.在浏览器中进行的网页开发,最 ...
- 移动web app开发必备 - 异步队列 Deferred
背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...
- 移动web app开发必备 - Deferred 源码分析
姊妹篇 移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...
- App.js – 用于移动 Web App 开发的 JS 界面库
App.js 是一个轻量级的 JavaScript UI 库,用于创建像本地应用程序的移动 Web 应用而不牺牲性能和体验.它是跨平台的,特定的UI设计,配置类似原生的过渡效果.App.js 的目的是 ...
- web app 开发必不可少的滑动插件 Flipsnap
flipsnap.js一个轻量级的滑动效果JS开发库,仅有8k大小(压缩版),包含了10种滑动方式,是web app开发必备的js库,除了兼容主流的智能手机浏览器(iossafari,android, ...
- Native App开发 与Web App开发(原生与web开发优缺点)
Native App开发 Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS.Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是 ...
- memcache 与 redis 为web app 带来的性能提升
memcache 与 redis 为web app 带来的性能提升 参考: 1. http://www.cnblogs.com/ToDoToTry/p/3513688.html
随机推荐
- Android 基于Message的进程间通信 Messenger完全解析
一.概述 说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写.如果你对这个过程不熟悉,可以查看Android aidl B ...
- 小数量宽带用户的福音,Panabit 云计费easyradius 接口隆重发布,PA宽带计费系统
PA接口在早前就发布了,但是一直迟迟没有发布官方说明文档,由于最近问的客户较多,特写了这篇文档 由于PA使用标准radius认证协议,所以用户需要在本地搭建一个计费,由于大部分用户的数量只有几百个,不 ...
- centos 7.0 下触发器乱码的解决
[root@iZ62jhlmmZ ~]# uname -a Linux iZ62jhlmsymZ 3.10.0-123.13.2.el7.x86_64 #1 SMP Thu Dec 18 14:09: ...
- PowerShell读取Windows产品密钥
之前大多数人可能用过VBS读取Windows产品密钥的VBS脚本,VBS脚本通常都比较隐晦.难懂,今天忙里偷闲,随手写了一个用于读取Windows产品密钥的PowerShell脚本. 代码如下: == ...
- 解决tomcat启动Socket监听端口死循环被hold问题
原文链接:http://blog.csdn.net/dead_cicle/article/details/7073433 1.SOCKET监听置于servlet的init方法中,在web.xml里加入 ...
- [leetcode]Second Highest Salary
找第二大 # Write your MySQL query statement below SELECT MAX(Salary) FROM Employee WHERE Salary NOT IN ( ...
- U3D4.X版本无法安装MONODEV编辑器
可能是由于机器无法成功安装.NET 4.0的缘故
- 用 Python 和 OpenCV 检测图片上的条形码
用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...
- EFW框架源代码版本升级记录说明
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- [原]SQLite的学习系列之获取数据库版本二
本系列文章主要是使用C++语言来调用其API,达到管中窥豹的目的.另外本文使用的开发环境为mac + clion,并且基于SQLite 3.7.14来进行开发. 一.去下载sqlite-amalgam ...