`

html5移动web开发实战必读书记

阅读更多

一、配置移动开发环境
1.各种仿真器、模拟器的下载安装
http://www.mobilexweb.com/emulators
https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Emulators-&-Simulators

2.html5 DTD
<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
safari: 设为屏幕宽度,并根据initial-scale=1.0禁止浏览器缩放

3.帮助html5跨浏览器的库
modernizr
html5shim
innershiv

4.使html5元素在旧版本IE中变成块级元素以及css重置

5.始终使用流式布局fluid layout

6.css媒介查询 media query
@media screen and (min-width: 480px) {...}

@media only screen and (min-width: 320px) {...}

7.用户需求分析工具
google analytics
percentmobile

jQuery mobile的浏览器分级列表:http://jquerymobile.com/gbs/
https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Matrices

二、移动端的配置和优化
1.提供启动图标(优化对各种浏览器的支持)

<link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114-precomposed.png"> # iphone4
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72-precomposed.png"> # ipad
<link rel="apple-touch-icon-precomposed" href="icons/apple-touch-icon-precomposed.png"> # android
<link rel="shortcut icon" href="icons/apple-touch-icon.png"> # symbian60

 

文档:关于触摸式图标的一起

2.避免字体被浏览器自动重置
html {
    -webkit-text-size-adjust: none;
}
改进
html {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

3.使用px

4.浏览器宽度完整解决方案
<meta name="HandheldFriendly" content="true"> # 古老版本浏览器
<meta name="MobileOptimized" content="320"> # 老版本浏览器
<meta name="viewport" content="width=device-width">

5.修复移动版safari的re-flow scale问题
<meta name="viewport" content="width=device-width, maximum-scale=1.0, minimum-scale=1.0"> # 不能缩放了
使用js代码解决不能缩放问题:

var metas = document.getElementByTagName("meta");
var i;
if(navigator.userAgent.match("/iPhone/i)) {
  for(i=0; i<metas.length; i++) {
    if(meta[i].name == "viewport") {
      metas[i].content = "width=device-width, maximum-scale=1.0, minimum-scale=1.0";
    }
  }
  document.addEventListener("gesturestart", gestureStart, false);
}

function gestureStart() {
  for(i=0; i<metas.length; i++) {
    if(meta[i].name == "viewport") {
      metas[i].content = "width=device-width, maximum-scale=1.6, minimum-scale=0.25";
    }
  }
}

 

更好的版本:https://gist.github.com/903131
jquery mobile版本:https://gist.github.com/1183357

6.在浏览器中启动原生应用
查看safari,黑莓,索爱支持哪些链接启动原生应用

7.iphone下全屏
<meta name="apple-mobile-web-app-capable" content="yes"> # 从界面图标启动时,全屏
<meta name="apple-mobile-web-app-status-bar-style" content="black"> # 顶部一个状态栏
<link rel="apple-touch-startup-image" href="img/1/splash.png"> # 预加载界面图片,类似ajax效果

8.防止ios在聚焦时自动缩放,例如填写表单时
<script>
</script>

9.禁用或者限制部分webkit特性
-webkit-touch-callout
-webkit-user-select
-webkit-tap-highlight-color
-webkit-appearance

为狭窄的浏览器添加省略号功能:
.ellipsis {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

三、移动设备的交互方式
1.利用触控来移动页面元素
2.检测盒处理横竖屏切换事件
window.onorientationchange事件
禁止横竖屏对于网友非常困难
3.利用手势旋转页面元素
ongestureend
4.利用滑动创建图库
zepto框架

5.利用手势缩放图片
ongesturechange

四、构建快速响应式移动互联网站点
1.html5标签
header,nav,footer,small,address

2.css3辅助
polyfills库
ultimate css gradient generator # css线性渐变效果编辑器
CSS3 PIE # 兼容IE9

3.响应式
使用modernizr库开检查浏览器对html3和css3的支持
可以用来检查后是否加载respond.min.js
yepnope异步加载

4.检测客户端
.htaccess重定向

5.使用书签冒泡为应用添加桌面快捷方式
mobilebookmark bubble库 from google # 只支持safari

6.构建可伸缩的文本输入框
mobile boilerplate库的helper.js

7.加速按钮反馈
touchstart

8.隐藏浏览器地址栏
MBP.hideUrlBar();

五、移动设备访问
1.获取位置信息
经度、纬度、当前位置的精确程度
navigator.geolocation.getCurrentPosition()

2.跨浏览器定位
geo-location-javascript库
延伸:YQL Geo库

手势缩放:
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

3.实时显示地理位置
watchPosition

4.DeviceOrientation事件 # 适用于ios
包括设备移动事件和横竖屏切换事件

5.使用foursquare定位
Marelle基于jquery和coffeescript
https://praized.github.com/marelle/
包括两个例子:登录和签到

foursquare接口列表
https://developer.foursquare.com/docs/libraries.html

六、移动富媒体
1.移动设备上播放音频
<audio>
不支持html5的浏览器使用polyfills解决

2.移动设备上播放视频
<video>
不支持html5的使用<boject>

http://diveintohtml5.info/video.html

3.使用离线缓存
使用.appcache

4.使用网络存储
web storage # 浏览器支持度最高
html5的indexed database api和web sql database
jqueryoffine库

5.使用web workers
javascript多线程的补充

6.使用session和history api构建类Flash导航效果

七、移动设备调试
1.使用opera dragonfly远程调试
2.使用weinre远程调试

3.移动设备上使用firebug
4.使用js console远程调试

5.配置移动safari调试器

八、服务器端性能调优
1.防止移动设备转码
.htaccess配置

2.添加移动设备支持的MIME类型
.htaccess配置 # 针对blackberry和Symbian等

3.正确显示cache manifest # 主要用来做离线应用存储功能,但是扩展名不能被服务器识别
.htccess配置

4.在头文件中设置未来过期时间
.htccess配置

5.使用gzip压缩
.htaccess配置

6.移除etags
.htaccess配置

九、移动性能测试
1.使用blaze的移动设备速度测试

2.在线分析移动页面速度
google page speed

3.pcap网站性能分析

4.移动版http archive

5.使用jdrop存储性能数据

十、拥抱移动互联网特性
1.window.onerror
2.使用ecmascript5中的新方法
3.html5中的新输入类型
date、datetime、month、time、range
4.HTML中内嵌svg
5.position:fixed
6.overflow:scroll # ios5+
-webkit-overflow-scrolling: touch

分享到:
评论

相关推荐

    Java Web开发实战经典

    Java Web开发实战经典 基础篇((JSP、Servlet、Struts、AJAX))。 李兴华 王月清编著 名师讲坛  适合小白入学javaweb,知识点全面,学习Java Web开发必读经典书籍之一,包含tomcat,jsp,servlet,ajax,struts等内容.

    Java Web开发实战1200例(第2卷)

    Java Web开发实战1200例(第2卷)、kindle文档、初学者必读书籍

    [入门必读]android移动开发

    [入门必读]android移动开发 十个 案例 值得学习打包

    关于HTML5牛逼的10本书.docx

    3. 《HTML5 移动 Web 开发实战详解》 - 林珑 这本书深入浅出地探讨了HTML5在移动开发中的应用,提供丰富的代码示例,覆盖了从基础到实战的全面内容,适合希望在移动领域进行HTML5开发的工程师。 4. 《疯狂 HTML 5/...

    Ajax实战中文版.pdf (推荐必读)

    **Ajax实战中文版.pdf**是一本深入探讨Ajax技术的专业书籍,适合希望提升Web开发技能的开发者阅读。Ajax,即Asynchronous JavaScript and XML(异步JavaScript和XML),是一种创建动态网页的技术,它允许在不重新...

    深入体验Java_Web开发内幕-核心基础(完美书签).part2

    讲解深入原理,让你知其然也知其所以然,学习Java Web开发必读经典书籍之一。边看边添加书签,累死了,本书被我分割成了两部分,这是part2,还需要下载part1,放在同一目录下解压。

    web 后台开发流程

    本文档目地是指导刚接触这套开发框架的开发人员如何快速的搭建开发环境和创建一个简单但功能齐全的C++工程。此文档目前仅针对估值系统的开发。...进入真正开发之前还请先仔细阅读下文列出的开发必读文档。

    PHPWEB手机免费版分享,官方提供全开源可进行2次开发

    PHPWEB框架旨在简化移动应用的构建过程,提高开发效率,同时也为有经验的开发者提供了广阔的自定义空间。 在【描述】中提到,这个免费版本是适合有一定开发基础的人员使用的。这意味着它可能不包含新手友好的图形...

    PHP和MySQL WEB开发(4th)pdf扫描版

    PHP和MySQL WEB开发(4th),php初学者必读,php开发圣经!

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    同时,"SAP开发自学必读"提示我们,这些资料可能包含了一些SAP开发的关键知识点,例如模块池编程(Seamless Workbench for ABAP,简称SE80),用于创建图形用户界面(GUI)的应用程序。 "SAP SAP开发自学入门到精通...

    STM32嵌入式系统开发实战指南-FreeRTOS与LwIP联合移植 [李志明等编著]

    首本从系统视角讲解STM32开发规范和编码规范的书,学习嵌入式系统开发必读。全方位讲解在STM32F107开发板上移植FreeRTOS和LwIP的全过程。

    后台服务器开发进阶必读源码书籍pdf

    《后台服务器开发进阶必读源码书籍》包含三本重要的技术书籍,它们分别是《libevent源码深度剖析》、《redis设计与实现(第二版)》和《深入理解Nginx模块开发及架构解析》。这些书籍是针对后台开发人员提升技能、深入...

    k60 开发入门必读

    【k60 开发入门必读】 在嵌入式开发领域,K60微控制器是一款广泛应用的MCU(微控制器单元),尤其适用于工业控制、汽车电子、消费电子等多个领域。K60是NXP(恩智浦)半导体公司推出的基于ARM Cortex-M4内核的...

    Web开发敏捷之道--应用Rails进行敏捷Web开发(第2版)--5

    Web开发敏捷之道--应用Rails进行敏捷Web开发(第2版),红色镐头书,学习ROR的必读精典!此为高清图片扫描,绝对清晰!

    C#开发人员必读书籍_全球IT外包新原点__0525).rar

    在.NET开发领域,C#是一种强大的、面向对象的编程语言,由微软公司开发,主要用于构建Windows桌面应用、Web应用、移动应用以及云服务。掌握C#语言是成为.NET开发者的基础,而深入理解.NET框架则能帮助开发者更好地...

    EXTJS_WEB开发指南(新手必读)

    如果你是EXTJS新手,如果你想要了解EXTJS,那么你还在等什么,下载看看吧,对你学习EXT有很大的帮助哦。。。

    weboffice开发文档

    点聚WebOffice是一款由北京点聚信息技术有限公司开发的中间件产品,主要用于在Web环境中实现文档的在线编辑、查看和管理。这款产品支持多种文档类型,如Word文档,并提供了丰富的开发接口,以便开发者能够将其集成到...

    MVC4web编程

    第2章:ASP.NET Web Form开发人员必读 第3章:使用数据 第4章:客户端开发 第5章:Web应用程序架构 第6章:使用AJAX提升网站体验 第7章:ASP.NET Web API 第8章:高级数据 第9章:安全 第10章:移动Web网站开发 第11...

    Android开发入门必读

    "Android开发入门必读"这一主题涵盖了两个核心文档:“Android应用开发详解”和“Android应用框架原理与程序设计36技第三版”。这些资源旨在帮助初学者理解Android系统的运作机制,以及如何有效地进行应用程序的开发...

Global site tag (gtag.js) - Google Analytics