Woodsrong javascript:alert(“hello, world ”); var shareInfo = { title: “ 朋友网触屏版开发分享 ”, author: “woodsrong”, time: “2012-12-14” }; 朋友网触屏版开发分享.

Slides:



Advertisements
Similar presentations
●公司簡介. ●公司組織 行銷 企劃部 行銷 企劃部 研發 設計部 研發 設計部 視覺 設計部 視覺 設計部 媒體 製作部 媒體 製作部 行動 裝置部 行動 裝置部 執行長 總經理 管理部 本公司組織人力配置除董事長、執行長、總經理外,共 有六大部門,分別為研發部 6 人、管理部 4 人、視覺設計部.
Advertisements

第 15 章 Mobile PHP 與 Ajax 15-1 Mobile PHP 15-2 Ajax 的基礎 15-2 Ajax 的基礎 15-3 jQuery 的 Ajax 方法 15-3 jQuery 的 Ajax 方法 15-4 應用實例:關鍵字建議清單 15-4 應用實例:關鍵字建議清單.
移动端网页开发 分享:杨顺心 WEB 前端开发工程师 2014 年. 目录 HTML5 现状 移动端 CSS3 移动端 javascript 调式移动端.
跨平台移动开发框架比较 How many mobile platforms android 拥有最多的 developer. 开发语言-大众脸- java 开发成本最低,不用单独买一台电脑. 开发者账号-免费 发布应用很快-当天提交,当天就能发布 iOS 贵族平台-至少把自己包装的很高大上.
三餐美食 经销商 三餐美食产品经销必读 2 三餐美食经销商 1 前言 三餐美食经销商是三餐美食餐饮系统重要的合作伙伴,同时也是三餐美食发展道路上最坚定不移的 支持者。为了让所有的经销商伙伴能够通过销售三餐美食产品快速致富,三餐美食总部根据三餐美食产 品开发和市场情况,为经销商伙伴们编撰了《经销商必读》,希望该手册能够让大家对三餐美食有更深.
玩转安卓智能手机 工程师 王东亮 图书馆 手机的发展 手机已经不仅仅是一个通讯设备,在智能系统的潮流之下, 手机已经成了一个多媒体的智能移动终端 有人喜欢用手机上 QQ ,玩微博,看网页;有人喜欢听歌, 拍照,玩游戏;有人利用手机进行日程的安排和办公 ······
钱富宝 V1.5.0 版本 APP 用户手册 钱富宝 APP 下载地址:
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
16 邁向網頁的未來-HTML5 Pack 與 Widget Browser 使用 HTML5 來為多重螢幕裝置進行設計 變更檢視區大小
Web app和html5给前端带来的变化 —— 我们的html5游戏平台之旅.
具有梦天堂特色的 Web前端开发规范 叫我三桂吧 t.qq.com/aNd1coder.
公会之家游戏圈社交软件 游戏联通世界.
網站「開外掛」 優化營業人員的戰鬥力 介紹 Web365行動展售網站系統的10大特色
公司保密工作要求及 院商秘保护工作安排 2014年9月12日.
事件驱动的移动数据中心 广州舜飞信息科技有限公司 谭荣棉.
对症下药 前端工程师如何学习Javascript.
專題製作 許惠淑.
皖新数字书屋.
Web程序设计基础 太原理工大学 计算机科学与技术学院 林福平 求实创新
王寧疆 資深講師 資策會數位教育研究所 MCPD/MCT/MVP
Mm Framework MakingMobile是一套基于HTML5的手机应用系统开发框架,致力将既有的桌面Web系统平滑延展到手机上。其架构特点强调易用性、延展性、跨平台、解耦化、组件化,主要面向定制性较强的行业应用市场。
上海宏弈源软件科技有限公司 — 12年专注益智软件研发 和配套产品服务 上海宏弈源软件科技有限公司.
各班請選出三張學習單交到輔導室參加評選。
《网页设计与制作》 教学课件 主讲人:湖南铁道职业技术学院 陈承欢
Html5在移动互联网项目的应用 主讲人:曲毅
基于hadoop与hive的大数据分析体系构建
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
Selenium 一个用于Web应用程序测试的工具 Robin Ren
TQC 雲端技術及網路服務.
Google 自訂搜尋 淡江大學資訊中心 專案發展組 朱家璁 2009/10/6.
基于书签的校园搜索引擎 Web 2.0时代的网络收藏夹.
網路程式設計期末專案 Master Drummer 資工3A B 陳天盛.
指導老師:王木良 開發團隊:林佳恩、吳建興、黃拱錠、李昕霓 樹德科技大學資訊工程系 2015/12/11
Android程式開發準備 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Introduction on Smartphone Platform
第8章 移动界面设计 山东大学计算机学院.
移动系统的安全: 攻击和防御 杜文亮 教授 Dept. of Elec. Eng. & Comp. Sci.
绿豆芽科技 让科技融入生活. 绿豆芽科技 让科技融入生活 让天下没有非互联网的公司 传统行业公司 新型科技公司 绿豆芽科技 产品研发 供应链 渠道 物联网硬件 云计算平台 APP应用 传统优势 竞争力 用户体验 团队由数十名硕士生及博士生组成,有着在德州仪器、中兴等知名企业的工作经历,项目经验丰富。团队成员获得过:电子设计竞赛国家一等奖、“Intel杯”嵌入式邀请赛冠军、“微软创新杯”
App Inventor 2體驗 靜宜大學資管系 楊子青
Android 课程讲义 智能手机开发
Cloud (AWS) 產品放置 ex.巴士, 球場, 旅館 …. 客戶需求SW模組化 1.客製化需求 2.Web技術
Web前端开发技术与实践 第3章:初识HTML5 阮晓龙 /
JavaScript 靜宜大學 資管系 楊子青.
EAS820 Web开发培训 ---基础篇 BOS WEB平台系统部 范来华
教務行政資訊系統 簡介 資訊科技中心 資訊系統組 徐振琦
認識科學小知識-密室逃脫遊戲(App) 南華大學 傳播學系3年級
移动知网 同方知网(北京)技术有限公司.
Web Crack 专题 – AJAX – 2016/11/18 – Payne 本次培训仅供教学内部用途 实验请遵守相关法律法规
酒店HTML5手机网站介绍 罗盘HIMS云计算为您提供技术支持.
《网上报告厅》使用说明 北京爱迪科森教育科技股份有限公司.
UI设计标准、移动开发规范、移动管理规范、集成标准规范
福智 學員平台 2018/6/9 幹部月會 羅東教室.
本章目錄 10-1 物聯網介紹 10-2 物聯網系統與物聯網策略聯盟模式 10-3 物聯網系統服務聯盟實證分析 10-4 結論與建議.
前终端一体化开发解决方案 腾讯 lucaspei(裴伟).
/ 第7讲:移动开发 冯顺磊 /
Android智慧型手機程式設計實務應用班
WEB统一检索本地整合技术 中国农业大学图书馆 康实.
聖文德書院 ST BONAVENTURE COLLEGE & HIGH SCHOOL
HTML 5與課程簡介 靜宜大學 資管系 楊子青.
2013年5月 前端性能优化与模块化开发 李周全
行動應用App基本資安檢測實驗室 檢測服務說明
機構督導: 范盛翔 督導 實習生: 佛光大學社會學系江佳穎 實習日期: 7/1(二)~8/29(五)
W3C标准网页制作 主讲教师:张 涛.
React.js.
組員: 傅靜君 陳資穎 錢亭臻 鍾昀婷 指導老師:蘇明俊
大数据应用人才培养系列教材 数据清洗 刘 鹏 张 燕 总主编 李法平 主编 陈潇潇 副主编.
104學年度 進修學校期初工作報告.
牡丹江市直中学生转学审批系统.
JavaScript 教师:魏小迪
如何著手入門MyLion 如何下載和註冊 讓我們來談談如何確保所有獅友知道如何下載和註冊app。.
Presentation transcript:

woodsrong javascript:alert(“hello, world ”); var shareInfo = { title: “ 朋友网触屏版开发分享 ”, author: “woodsrong”, time: “ ” }; 朋友网触屏版开发分享

朋友网触屏版 开发模式 远程调试 图片本地压缩 其他技巧

{ S P A }

代码组织 基础框架选型 Runtime ver.

代码组织 基础框架选型 Framework File size (gzip) Community activity Learning costs jQuery Mobile30k + 40k ★★★★★★ jqmobi6k ★★★★ zepto8k ★★★☆★ underscore4k ★★★★★★★★ Self- development ???

代码组织 模块化代码 减少全局变量污染 减小代码体积 继承、覆盖父类方法 PY.Class.create() 抽离公共模板复用 预编译 template 为 function

页面管理 PageManager Page launched onCreate Page showed at front of users onShow onHide onDestory Page cleared User navigates to the page onBack onClick onXxx…

页面管理 Base Class of Page

事件处理 全局代理 写事件就是写 evtMap 属性配置

事件处理 全局代理 处理过程:从子页面 逐级冒泡到父页面 主框架页 一级页面 二级页面

事件处理 全局代理 处理过程:从子页面逐级冒泡到父页面

网络请求 请求合并 后台请求入口支持发送 cmds[] array 实现批量请 求,使用 _key 来标识每个独立的请求 cmds[] = _key=xxx&server=xxx&cmd=xx&xxxxxx Connection:keep-alive

数据存储 304 & 本地 sqlite 存储 朋友网 widget 项目 同比大概节约了 40% 的流量 (忽略 http 请求头) 日期 命中 比例 19.53%28.60%38.83%

数据存储 304 Sqlite 本地存储

文件缓存 Manifest cache 含有 manifest 属性的当前请求页无论如何都会被缓存 对于动态页而言很致命 更新需要建立在 manifest 文件的更新,文件更新后是需要页面再次刷新的 需要 2 次刷新才能获取新资源 更新是全局性的,无法单独更新某个文件 无法单点更新 Seajs plugin storage ❶ 彻底磨灭二次访问的网络请求数(主要指 js 和 css 文件),消灭 304 所 带来的各种开销( RTT, TCP Connection setup - 3way - handshake ) 使用 localStorage 模拟 manifest 管理,支持单点实时更新 ❶ 无线前端资源管理方案 http://ux.etao.com/posts/449

文件缓存 Seajs plugin storage 304 开销 NetDnsConnRttTran 2G27%25% 27% 3G31%26%33%10% wifi33%17%40%10% 注:数据来源于一淘网一淘网 没有请求 才是王道!

代码组织 Framework Inherit & Override Common template 网络请求 Merge request Connect keep alive 页面管理 PageManager Base class(onCreate…) 数据存储 304 localStorage 事件处理 evtMap config Bubble Event Model 文件缓存 Manifest cache Seajs plugin storage SPA ( Single Page App )

远程调试 远程调试难点 Breakpoint & console http request watch Android: 使用代理上网在代理上抓包 ios: 越狱后 tcpdump 抓包 代码修改及时生效 Host 反向代理

远程调试 现有方案 Supported target PaltformSupported panels WeinreIos4+, android, other webkit Elements, resources, network, timeline, console JsconsoleIos4.2+, android2.2.2+, webosConsole Aardwolf Ios, android, WinPhone 7, BlackBerry OS 6+ Breakpoint WebKit Remote Debugging protocolwebkit(pc)All panels Chrome v8 debugger protocolV8 javascript engineBreakpoint DragonFlyOpera mobileopera dragon panel Iphone app (JSConsole app or Bugaboo) IosConsole UCweb browser dev (android)Ucweb android only Elements, resources, network, script, console

远程调试 Weinre (WEb INspector Remote) Phonegap 子项目 Nodejs 版 原理: weinre 远程设备调试里有 3 个主要概念名词 调试服务器  调试服务器起到代理的作用,用来同步调试目标和调试客户端之间的命 令 调试客户端  通常为桌面调试环境,即开发者实际操作调试的地方(比如 Web Inspector 或者 Google Chrome 的开发者工具) 调试目标  运行被调试 web 内容的移动设备

远程调试 Weinre (WEb INspector Remote) weinre 的调试目标和客户端都运行在浏览器中,而调试服务器则以 HTTP 服务器方 式作为二者的中介运行 关键:搭建一个 “ 调试服务器 (Debug Server)”

远程调试 Weinre (WEb INspector Remote) 使用方法 地址: 在调试目标页面载入 js 脚本  在 pc 上用 chrome 打开调试客户端  接下来你懂的 …

远程调试 Bookmark debug

图片本地压缩 基本原理 通过 input type=file 选择本地图片 通过 FileReader Api 获取本地图片数据 将本地大尺寸图片渲染到尺寸更小的 canvas 通过 canvas 生成被缩放后的小图的 base64 字符串 base64 字符串可以用来本地预览和 ajax 上传 图片地址 图片数据 图片转换 图片地址

图片本地压缩 Api 支持情况 Input type=file & FileReader canvas Input type=fileFileReader Android QQBrowser 3.X√× Android QQBrowser 4.X√√ Android UcWeb√√ 表 1. fileReader 表 2. canvas

图片本地压缩 Ios 平台 bug Subsample 官方文档描述 官方文档  大于 2M 的图片读到浏览器里的时候会做 subsample 处理  最大可以处理的 jpg 图片为 32M  其他类型图片 256M 内存机器最大可以处理 3M 图片;大于 256M 内存可以处理 5M 图片 大图高度被压缩 bug 图片高度只有原来的 1/4

图片本地压缩 Ios 平台实战 Subsample 对大于 1024x1024 的图片检测是否有被抽值 检测抽值原理:取图片右下角的 1x1px 像素的 aRGB 数组判断 alpha 值 被抽值的 图片按 1 : 2 ( 经验值 ) 还原 原始图片大小 抽值后大小 w h/2 w/2 h 判断该点的 alpha 值

图片本地压缩 Ios 平台实战 高度被压缩 bug 计算图片高度被压缩比例,通过贴瓷砖的方法用固定大小的小 canvas 去分片读取大图到小 canvas ,拷贝过程中计算压缩比 原始大图 一般大图高度会被压缩到 1/4 h/4 目标大 小 瓷砖 w h 拷贝

图片本地压缩 Android 平台 canvas.toDataURL() 输出图片 格式限制 w3c 标准: image/png ;浏览器可选择实现其他格式 Ios 支持 image/jpg 格式输出,可调整压缩质量 canvas.toDataURL(‘image/jpeg’, 0.8) android 只支持默认格式  Jpg 图片大小只有 Png 格式的约 1/3

图片本地压缩 Android 平台实战 借助第三方工具库 jpegEncoder jpegEncoder 将 canvas 的 argb 颜色数组转化为为压缩比更高 的 jpg 格式,同时支持设置压缩质量

图片本地压缩 其实,还可以做的更好! 借助第三方工具库 JpegMeta JpegMeta 读取图片 meta 数据里照片拍摄方向后自动旋转 图片

图片本地压缩 你担心性能问题吗? 部分实验数据 HTC Incredible ( 1Ghz ) 整个压缩过程耗时约 3s #sourcecompressedTotal time(ms) 1850k66k M81k M68k M158k2834

图片本地压缩 推荐压缩方案 根据朋友网业务特点 图片压缩到 800x800 以内 压缩质量 0.8 Android 下 2G 网络压缩质量调整为 0.5 一般 2M 的图片可以压缩到 150k 左右 适合移动网络下传输

其他技巧 Ucweb 极速模式如何避免 点击超链接跳转 ext:webkit: 申请白名单 ( 需要交换商业资源, 可联系 uc 市场部接口人 ) iphone safari textarea focus 后横竖屏切换导致 viewport scale 越来越 大 使用 form 表单后,可以启用键盘上的提交,这个时候如何收起键盘 通过 form 表单可以使键盘上的 “ 换行 ” 变为 “ 前往 ” 或者 “ 提交 “ ;点击前往的时候收起 虚拟键盘,必须要 focus 一个可点击元素,这个元素不能是一个空节点,里面可以 放一个 同时不能设 display:none 或 visibility:hidden ,可以设 width:0; height:0;

其他技巧 使用 css 3D 高效动画 Css 动画 time-function 使用 cubic-bezier 变换可大幅提升动画流畅度 webkit-transition-timing-function:cubic-bezier(0.33,0.66,0.66,1) 3D 动画闪屏问题 在动画元素的父节点上应用 webkit-backface-visibility:hidden Onorientationchange Onresize 延时检测 跨域 ajax Qcookie 登录 QQbrowser 后会自动附到 http 请求头

参考资料 HTML http:// W3schools http:// Know iOS Resource Limits. ons/Reference/SafariWebContent/CreatingContentforSafarioniPhone/C reatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP SW ons/Reference/SafariWebContent/CreatingContentforSafarioniPhone/C reatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP SW15 Weinre http://people.apache.org/~pmuellr/weinre/docs/latest/ JpegEncoder JpegMeta http://code.google.com/p/jsjpegmeta/ Seajs storage plugin http://ux.etao.com/posts/449

Thank you all! Q & A

附:用户浏览器分布

附:用户网络分布

附:用户首屏数据加载时间