SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
HTML5 实战
   WebApp 阅读应用– Shiu
              @alswl
关于我
●   狄敬超 @alswl
●   Python 程序猿
●   前端爱好者
●   Linux 用户,热爱开源
●   独立博客: http://log4d.com
●   Twitter/Weibo: @alswl
●   email : alswlx(a)gmail(dot)com

        18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
Shiu 初体验
●   使用手机浏览器访问
    http://shiu.log4d.com
    –   必须使用 Webkit 核心的浏览器(手机原生浏览器)
    –   iOS 体验效果最佳
    –   非 iOS 可能会出现一些 bug
●   代码开源托管在 Github:
    –   https://github.com/alswl/shiu



           18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
起源

@bang 伊书 http://yishu.cnbang.net/




      18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
WebApp ? NativeApp ?
优势                               劣势
●   开发成本低                         ●   浏览器性能 /GPU
●   容易「转出」                        ●   无法调用硬件设备
●   跨平台 / 跨终端                     ●   标准之战
●   无须安装 / 容易获取                   ●   无法消息推送
●   部署方便 / 易于升级                   ●   盈利模式
●   盈利分成

       18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
从文件结构开始
▸ image/ # 图片                             app.js
▸ js/ # JS
                                          appui.js
▸ qingyunian1/ # 庆余年 1
                                          book.js
▸ santi1/ # 三体 1
▸ style/ # 样式                             chapter.js
▸ test/ # 单元测试                            common.js
  build.sh* # 部署脚本                        iscroll.js
  favicon.ico
                                          phantom-limb.js
  index.html # 项目主页 Github
Pages                                     scale.fix.js
  manager.py* # 管理脚本                      shiu.js
  params.json
                                          zepto.js
  README.md # Github Readme


             18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
经典 MVC




    18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
Server 端 Web 开发中的 MVC




    18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
MCRV 开发模式




   18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
系统结构

                     index.html

Sidebar
                                                Chapter
Buttons         AppUi              App
                                                 Book
Content

   iScroll                 zepto              Common
     18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
离线存储 -WebApp 的基石
●
    Manifest
    –   缓存静态文件
    –   MIME:text/cache-manifest
    –   调试方法
    –   按 url 区分存储
●   Web SQL Database
    –   SQLite
    –   倔强的 Firefox
    –   容量
●
    LocalStorage/SessionStorage
●
    indexDb

                 18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
各浏览器对离线存储支持




  18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
Manifest
CACHE MANIFEST                     ../js/app.min.js
# Cache Manifest Version:          ../js/shiu.min.js
20120418
                                   ../style/style.min.css
                                   ../image/cover.png
CACHE:
                                   ../image/side_bg.png
../js/zepto.min.js
                                   logo.jpg
../js/iscroll.min.js
                                   cover.jpg
../js/common.min.js
../js/chapter.min.js
                                   NETWORK:
../js/book.min.js
../js/appui.min.js
                                   *


         18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
LocalStorage

appCache = window.applicationCache;
appCache.onprogress = function (e)
{…};
onCached = function(e) {};
appCache.oncached               = onCached;
appCache.onnoupdate                 = onCached;
appCache.onupdateready = onCached;

      18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
那些年我们一起追的 meta
●   viewport
    –   width=device-width
    –   initial-scale=1.0
    –   maximum-scale=1.0
    –   user-scalable=no
●   format-detection
    –   telephone=no
    –   email=no(Android)




             18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
●   apple-mobile-web-
    app-capable
    –   window.navigator.sta
        ndalone
●   apple-mobile-web-
    app-status-bar-style
    –   default
    –   black
    –   black-translucent




                18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
●   apple-touch-
    icon-precomposed




        18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
●   apple-touch-
    startup-image




        18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
CSS3 中的神灵
●   -webkit-column-width
●   -webkit-column-gap
●   -webkit-transform
●   -webkit-tap-highlight-color
●   -webkit-overflow-scrolling




        18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
排版分页




                                   Shiu 的排版实现


 伊书的排版实现
  18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
靠「 end 」解决页码问题


18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
划动 (Flip)
●   三种在规范中列出并跨移动设备广泛实现的基本触摸事件:
    –   touchstart :手指放在一个 DOM 元素上。
    –   touchmove :手指拖动一个 DOM 元素。
    –   touchend :手指从一个 DOM 元素上移开。
●
    每个触摸事件都包括了三个触摸列表:
    –   touches :当前位于屏幕上的所有手指动作的列表。
    –   targetTouches :位于当前 DOM 元素上的手指动作的列表。
    –   changedTouches :涉及当前事件的手指动作的列表。例如,在一个
        touchend 事件中,这将是移开手指。




             18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
self.$.bind('touchstart', function
(e) {
      self.startX = e.touches[0].pageX;
    self.startLeft = self.
$chapter.offset().left;
});




        18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
滑动 (Slide)
●   iScroll
●
    -webkit-overflow-scrolling
●
    传统 css 实现(卡)
    –   $.animate({'left': left}, 200)
●   left / transition
    –   -webkit-transition: left 201ms;
●   transition / transform ( WebGL 实现)
    –   -webkit-transition: all 300ms ease-out;
    –   this.$chapter.css('-webkit-transform',
        'translate3d(200px, 0, 0)');


             18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
小手段
●   自动更新
●   横屏
●   异步加载 JS(loadBookJs)




         18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
趁手的家伙们
●   Zepto                             ●   QUnit
    –   jQuery 完全兼容,并且                    –   单元测试
        更小
                                      ●   JSlint
    –   更精简,加载更快
    –   只支持「现代浏览器」
                                          –   代码质量
    –   适合开发移动应用                      ●   phamtom-limb
●   manager.py                            –   调试模拟触屏
    –   运行静态服务器                       ●   YUI compressor
    –   转换文本到书籍 js                        –   build.sh


            18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
广告
●   ArchLinux                        ●   NJLUG
●   Vim                                  (Nanjing Linux
                                         User Group)
●   Git / Github
                                     ●   NJGDG
●   Python                               (Nanjing Google
                                         Developer Group)




          18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
Q & A


18:53:15   HTML5 实战 – WebApp 阅读应用 Shiu
感谢您的耐心!
    @alswl

Weitere ähnliche Inhalte

Andere mochten auch

Ndotja e Mjedisit
Ndotja e MjedisitNdotja e Mjedisit
Ndotja e MjedisitAnida Ago
 
Scratch barcamp shanghai_2014
Scratch barcamp shanghai_2014Scratch barcamp shanghai_2014
Scratch barcamp shanghai_2014PK Shiu
 
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)Sun Kim
 
Projekt kurrikular kimi punoi klajdi haka
Projekt kurrikular kimi punoi klajdi hakaProjekt kurrikular kimi punoi klajdi haka
Projekt kurrikular kimi punoi klajdi hakaEdlira Ira Krasniqi
 
Ndotja kimikie e mjedisit ne qytetin e elbasanit
Ndotja kimikie e mjedisit ne qytetin e elbasanitNdotja kimikie e mjedisit ne qytetin e elbasanit
Ndotja kimikie e mjedisit ne qytetin e elbasanitkoralda
 
Projekt kimi (1)
Projekt kimi (1)Projekt kimi (1)
Projekt kimi (1)ermela01
 
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet Ndotja e mjedisit dhe ndikimi i saj në biodiversitet
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet Darla Evangjeli
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Andere mochten auch (15)

Ndotja e Mjedisit
Ndotja e MjedisitNdotja e Mjedisit
Ndotja e Mjedisit
 
Scratch barcamp shanghai_2014
Scratch barcamp shanghai_2014Scratch barcamp shanghai_2014
Scratch barcamp shanghai_2014
 
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)
FDA on Prefilled Syringes and Combination Products (Lana Shiu,MD)
 
Projekt kurrikular kimi punoi klajdi haka
Projekt kurrikular kimi punoi klajdi hakaProjekt kurrikular kimi punoi klajdi haka
Projekt kurrikular kimi punoi klajdi haka
 
Ndotja kimikie e mjedisit ne qytetin e elbasanit
Ndotja kimikie e mjedisit ne qytetin e elbasanitNdotja kimikie e mjedisit ne qytetin e elbasanit
Ndotja kimikie e mjedisit ne qytetin e elbasanit
 
ndotja e mjedisit
ndotja e mjedisitndotja e mjedisit
ndotja e mjedisit
 
Projekt kimi
Projekt kimiProjekt kimi
Projekt kimi
 
Ndotja e ajrit
Ndotja e ajrit Ndotja e ajrit
Ndotja e ajrit
 
PROJEKT-Ndotja e Mjedisit
PROJEKT-Ndotja e MjedisitPROJEKT-Ndotja e Mjedisit
PROJEKT-Ndotja e Mjedisit
 
Projekt kimi (1)
Projekt kimi (1)Projekt kimi (1)
Projekt kimi (1)
 
Mjedisi
MjedisiMjedisi
Mjedisi
 
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet Ndotja e mjedisit dhe ndikimi i saj në biodiversitet
Ndotja e mjedisit dhe ndikimi i saj në biodiversitet
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Ähnlich wie HTML5 实战 WebApp 阅读应用– Shiu

React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?昱安 周
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發Fred Chien
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 LibraryMu Chun Wang
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版Kirk Chen
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_finalWei Sun
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統Hsu Ping Feng
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
美团点评技术沙龙13-酒旅Hybrid架构体系及演进
美团点评技术沙龙13-酒旅Hybrid架构体系及演进美团点评技术沙龙13-酒旅Hybrid架构体系及演进
美团点评技术沙龙13-酒旅Hybrid架构体系及演进美团点评技术团队
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
前端杂谈
前端杂谈前端杂谈
前端杂谈salinet
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Designjay li
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 longMeng-Ru (Raymond) Tsai
 
测试驱动的前端开发初探
测试驱动的前端开发初探测试驱动的前端开发初探
测试驱动的前端开发初探hua qiu
 
Test driven-frontend-develop
Test driven-frontend-developTest driven-frontend-develop
Test driven-frontend-developfangdeng
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路yingganfei
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践alvis-m
 

Ähnlich wie HTML5 实战 WebApp 阅读应用– Shiu (20)

React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
美团点评技术沙龙13-酒旅Hybrid架构体系及演进
美团点评技术沙龙13-酒旅Hybrid架构体系及演进美团点评技术沙龙13-酒旅Hybrid架构体系及演进
美团点评技术沙龙13-酒旅Hybrid架构体系及演进
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
前端杂谈
前端杂谈前端杂谈
前端杂谈
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 long
 
测试驱动的前端开发初探
测试驱动的前端开发初探测试驱动的前端开发初探
测试驱动的前端开发初探
 
Test driven-frontend-develop
Test driven-frontend-developTest driven-frontend-develop
Test driven-frontend-develop
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践
 

Mehr von Jingchao Di

2018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v22018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v2Jingchao Di
 
2017 05 monitoring-introducing
2017 05 monitoring-introducing2017 05 monitoring-introducing
2017 05 monitoring-introducingJingchao Di
 
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQLJingchao Di
 
Brief principle and principle of coding
Brief principle and principle of codingBrief principle and principle of coding
Brief principle and principle of codingJingchao Di
 
Mitmproxy usage v20141216
Mitmproxy usage v20141216Mitmproxy usage v20141216
Mitmproxy usage v20141216Jingchao Di
 
打造可维护的应用 20160704
打造可维护的应用 20160704打造可维护的应用 20160704
打造可维护的应用 20160704Jingchao Di
 
Window management v16.03.23
Window management v16.03.23Window management v16.03.23
Window management v16.03.23Jingchao Di
 

Mehr von Jingchao Di (7)

2018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v22018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v2
 
2017 05 monitoring-introducing
2017 05 monitoring-introducing2017 05 monitoring-introducing
2017 05 monitoring-introducing
 
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL沪江去 Windows 实践 - 从 SQL Server 到 MySQL
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
 
Brief principle and principle of coding
Brief principle and principle of codingBrief principle and principle of coding
Brief principle and principle of coding
 
Mitmproxy usage v20141216
Mitmproxy usage v20141216Mitmproxy usage v20141216
Mitmproxy usage v20141216
 
打造可维护的应用 20160704
打造可维护的应用 20160704打造可维护的应用 20160704
打造可维护的应用 20160704
 
Window management v16.03.23
Window management v16.03.23Window management v16.03.23
Window management v16.03.23
 

HTML5 实战 WebApp 阅读应用– Shiu

  • 1. HTML5 实战 WebApp 阅读应用– Shiu @alswl
  • 2. 关于我 ● 狄敬超 @alswl ● Python 程序猿 ● 前端爱好者 ● Linux 用户,热爱开源 ● 独立博客: http://log4d.com ● Twitter/Weibo: @alswl ● email : alswlx(a)gmail(dot)com 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 3. Shiu 初体验 ● 使用手机浏览器访问 http://shiu.log4d.com – 必须使用 Webkit 核心的浏览器(手机原生浏览器) – iOS 体验效果最佳 – 非 iOS 可能会出现一些 bug ● 代码开源托管在 Github: – https://github.com/alswl/shiu 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 4. 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 5. 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 6. 起源 @bang 伊书 http://yishu.cnbang.net/ 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 7. WebApp ? NativeApp ? 优势 劣势 ● 开发成本低 ● 浏览器性能 /GPU ● 容易「转出」 ● 无法调用硬件设备 ● 跨平台 / 跨终端 ● 标准之战 ● 无须安装 / 容易获取 ● 无法消息推送 ● 部署方便 / 易于升级 ● 盈利模式 ● 盈利分成 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 8. 从文件结构开始 ▸ image/ # 图片 app.js ▸ js/ # JS appui.js ▸ qingyunian1/ # 庆余年 1 book.js ▸ santi1/ # 三体 1 ▸ style/ # 样式 chapter.js ▸ test/ # 单元测试 common.js build.sh* # 部署脚本 iscroll.js favicon.ico phantom-limb.js index.html # 项目主页 Github Pages scale.fix.js manager.py* # 管理脚本 shiu.js params.json zepto.js README.md # Github Readme 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 9. 经典 MVC 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 10. Server 端 Web 开发中的 MVC 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 11. MCRV 开发模式 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 12. 系统结构 index.html Sidebar Chapter Buttons AppUi App Book Content iScroll zepto Common 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 13. 离线存储 -WebApp 的基石 ● Manifest – 缓存静态文件 – MIME:text/cache-manifest – 调试方法 – 按 url 区分存储 ● Web SQL Database – SQLite – 倔强的 Firefox – 容量 ● LocalStorage/SessionStorage ● indexDb 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 14. 各浏览器对离线存储支持 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 15. Manifest CACHE MANIFEST ../js/app.min.js # Cache Manifest Version: ../js/shiu.min.js 20120418 ../style/style.min.css ../image/cover.png CACHE: ../image/side_bg.png ../js/zepto.min.js logo.jpg ../js/iscroll.min.js cover.jpg ../js/common.min.js ../js/chapter.min.js NETWORK: ../js/book.min.js ../js/appui.min.js * 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 16. LocalStorage appCache = window.applicationCache; appCache.onprogress = function (e) {…}; onCached = function(e) {}; appCache.oncached = onCached; appCache.onnoupdate = onCached; appCache.onupdateready = onCached; 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 17. 那些年我们一起追的 meta ● viewport – width=device-width – initial-scale=1.0 – maximum-scale=1.0 – user-scalable=no ● format-detection – telephone=no – email=no(Android) 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 18. apple-mobile-web- app-capable – window.navigator.sta ndalone ● apple-mobile-web- app-status-bar-style – default – black – black-translucent 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 19. apple-touch- icon-precomposed 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 20. apple-touch- startup-image 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 21. CSS3 中的神灵 ● -webkit-column-width ● -webkit-column-gap ● -webkit-transform ● -webkit-tap-highlight-color ● -webkit-overflow-scrolling 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 22. 排版分页 Shiu 的排版实现 伊书的排版实现 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 23. 靠「 end 」解决页码问题 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 24. 划动 (Flip) ● 三种在规范中列出并跨移动设备广泛实现的基本触摸事件: – touchstart :手指放在一个 DOM 元素上。 – touchmove :手指拖动一个 DOM 元素。 – touchend :手指从一个 DOM 元素上移开。 ● 每个触摸事件都包括了三个触摸列表: – touches :当前位于屏幕上的所有手指动作的列表。 – targetTouches :位于当前 DOM 元素上的手指动作的列表。 – changedTouches :涉及当前事件的手指动作的列表。例如,在一个 touchend 事件中,这将是移开手指。 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 25. self.$.bind('touchstart', function (e) { self.startX = e.touches[0].pageX; self.startLeft = self. $chapter.offset().left; }); 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 26. 滑动 (Slide) ● iScroll ● -webkit-overflow-scrolling ● 传统 css 实现(卡) – $.animate({'left': left}, 200) ● left / transition – -webkit-transition: left 201ms; ● transition / transform ( WebGL 实现) – -webkit-transition: all 300ms ease-out; – this.$chapter.css('-webkit-transform', 'translate3d(200px, 0, 0)'); 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 27. 小手段 ● 自动更新 ● 横屏 ● 异步加载 JS(loadBookJs) 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 28. 趁手的家伙们 ● Zepto ● QUnit – jQuery 完全兼容,并且 – 单元测试 更小 ● JSlint – 更精简,加载更快 – 只支持「现代浏览器」 – 代码质量 – 适合开发移动应用 ● phamtom-limb ● manager.py – 调试模拟触屏 – 运行静态服务器 ● YUI compressor – 转换文本到书籍 js – build.sh 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 29. 广告 ● ArchLinux ● NJLUG ● Vim (Nanjing Linux User Group) ● Git / Github ● NJGDG ● Python (Nanjing Google Developer Group) 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu
  • 30. Q & A 18:53:15 HTML5 实战 – WebApp 阅读应用 Shiu