一,代码优化:

代码优化是任何优化技术的第一步,因为归根结底网页上的一切都是构建在代码之上的。优秀的代码可以节省宽带,减少渲染延迟,以及提高页面的可读性和长远的可维护性。下面列出了一些在Web应用中编写任何代码时都应该记住的最佳实践。

1,使用遵循Web标准的代码。

2,精简代码。

3,减少HTTP请求数。

1)单个资源文件必须少于15KB(在未缩的情况上)。

针对iPhone设计的页面需要将各个资源文件的大小限制在15KB以内,以得到最优的缓存行为。iPhone最多可以缓存105个15KB以下的资源文件。在达到缓存数量上限以后,新缓存的文件会覆盖缓存中的旧的文件。

2)全局缓存资源必须少于1.5KB.

尽管iPhone能够缓存很多资源文件,但加起来最多只能缓存大概1.5MB.缓存可用字节数的上限大约为105*15=1575KB.

3)设备关机会后清空HTTP缓存。

如果用户需要强制重启设备,缓存中的资源就会丢失。这是由于在iPhone上,Safari从系统内存中分配空间来创建缓存文件,但并没有把缓存组件写入持久性的存储设备中。

4)关闭标签页也会清空HTTP缓存。

关闭掉所有标签,只留下空白标签后再关掉Safari也会清空缓存。

从开发的视角来看,这种类型的缓存是不可靠的。因为它清空的频率太高,也难以缓存一个现代网页的大部分资源。即便是压缩到极致的JavaScript框架或CSS文件都很难将大小控制在15k以内,更不用说几乎所有的Web应用用到的图片都会超过这个大小。万幸的是我们还有更好的选择来实现目标,即HTML5提供的离线功能。

4,合并CSS和JavaScript文件。

5,减少DOM操作。

二,图片优化。

1,优化色彩深度。

2,使用CSS精灵图。

3,千万不要缩放图片。

始终根据设备视口或是设计元素的宽高来以合适的尺寸使用图片。别指望Safari能自动把一个图片缩放到合适的大小。唯一可以例外的是,当我们在指定设备的Web应用中插入图片时,可以通过设置值为100%的宽度来同时自适应于横屏或是竖屏视图。

这一法则同样也可以缩短网页的加载时间及页面中每次运行JavaScript时给用户体验造成的延时,遵守这一法则非常重要,同时也别忘了给图片设定宽度和高度,这样也助于减少渲染所用的时间。这一法则同样缩短了网页的加载时间以及页面中每次运行JavaScript时给用户体验造成的延时。

三,应用压缩。

Safari支持GZIP压缩,所以将Web应用的一些资源进行压缩会是个不错的想法,这样可以提升用户体验的层次。我们可以决定什么时候 压缩HTML5页面,CSS3样式表或是JavaScript代码,然而却并没有必要去压缩图片或者是PDF文档,因为这些类型的资源是已经压缩过的。对图片或者PDF文档进行压缩是白白浪费CPU资源,甚至有可能反而增大文件体积。

对于服务器来说,为了使用Web应用能使用GIP压缩过的资源,服务器必须配置为在请求时自动提供压缩过的资源。另外一方面,客户端必须支持这种压缩类型的文件。

GIP压缩并不骨文件格式的限制,因此这是给网页大幅”瘦身“的最简易的方式。GZIP压缩可以将文件减少大概70%。

虽然好处很明显,但世界上没有十全十美,一般而言GZIP压缩也有一些不足之外。

1,我们需要个个支持GZIP压缩的浏览器。当然,针对我们的情况这并不是一个问题,因为Safari和其他基于WebKit的浏览器都支持GZip.

2,  我们无法压缩力片和PDF文档,因为它们本身就是一种压缩格式。

3,由于Safari需要实时地解压缩资源,某些情况下这一过程会增加CUP时钟周期和开销,以致抵消了可能带来的好处。所以,最好先测试一下,以确保不会被这些额外开销造成弊大于利的情况。

四,可用性优化。

1,可用性检查。

2,可用性测试。

参考资料:《iOS Web应用开发》

【读书笔记】iOS-优化iOS Web应用的更多相关文章

  1. 《软件测试自动化之道》读书笔记 之 底层的Web UI 测试

    <软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序  启动IE并连接到这个实例  如何判断待测web程序完全加载到浏览 ...

  2. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  3. 读书笔记iOS-Core-Animation-Advanced-Techniques,iOS性能调试工具

    调试卡顿,除了使用timer profile,还可以使用 OpenGL ES驱动工具 OpenGL ES Driver工具显示的GPU利用率,打开Color Blended Layers 我们给图片和 ...

  4. 【读书笔记】iOS-网络-Web Service协议与风格

    协议指的是在与其它系统交换结构化信息时所要遵循的一套格式,过程与规则.此外,协议定义了在传输过程中所要使用的数据格式.这样,接收系统就能正确地解释结构化信息并做出正应的回应. 1,简单对象访问协议. ...

  5. 【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)

    Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务. 目前3种主流的Web Service实现方案用:REST,SOAP和XML-RP ...

  6. Machine Learning for hackers读书笔记(七)优化:密码破译

    #凯撒密码:将每一个字母替换为字母表中下一位字母,比如a变成b. english.letters <- c('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' ...

  7. 读书笔记之深入分析Java Web技术内幕

    章节: 1 B/SB/S的优点: 客户端使用统一的浏览器(Browser) ,浏览器的统一带来了操作的统一,无论使用什么服务,因为浏览器是相同的,所以操作类似.客户使用简单了.服务端开发简化; 使用统 ...

  8. 读书笔记<白帽子讲web安全>

    2016年3月24日 09:34:32 星期四 ddos攻击: 一种: 随机生成ip, 去建立链接, 由于http/tcp握手协议原理, 发送应答报文时因为ip无效会导致等待重发, 这种行为可以通过电 ...

  9. 【读书笔记】《Java Web整合开发实践》第3章 JSP

    1. JSP:Java Server Pages 2. JSP注释:<%--注释内容--%> 3. page指令(页面指令):定义JSP页面的全局属性. <%@ page langu ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. AJPFX简述:MetaTrader 4移动交易平台

    (AJPFX)移动交易平台可以让客户随时通过客户手中的移动设备例如智能手机.PDA等管理自己帐户和进行交易.移动交易平台提供了完整的交易帐户管理分析选项,当客户无法使用台式计算机的时候,移动交易平台为 ...

  2. 从零开始的程序逆向之路基础篇 第二章——用OllyDbg(OD)分析一个简单的软件

    作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭A ...

  3. Javascript高级编程学习笔记(2)—— Script标签

    script标签 js在浏览器中的使用,肯定会涉及到script标签. 那么script标签有哪些属性呢? 1.async:异步加载(不让页面等待该脚本的加载执行,异步加载页面的其他部分) 2.cha ...

  4. MyEclipse + Maven开发Web工程的详细配置过程

    好久没做Web方面的开发,今天突然想弄弄SpringMVC,因为不久前又学了点Maven觉得非常好,所以在弄SpringMVC这个Web框架时想使用Maven来做,但是问题又来了,我一直是在Eclip ...

  5. Android开发工程师文集-相关控件的讲解,五大布局

    前言 大家好,给大家带来Android开发工程师文集-相关控件的讲解,五大布局的概述,希望你们喜欢 TextView控件 TextView控件有哪些属性: android:id->控件的id a ...

  6. JavaScript 函数式编程读书笔记1

    概述 这是我读<javascript函数式编程>的读书笔记,供以后开发时参考,相信对其他人也有用. 说明:虽然本书是基于underscore.js库写的,但是其中的理念和思考方式都讲的很好 ...

  7. nginx代理tomcat做负载

    先对三台服务器统一环境. 对两台tomcat服务器的操作 查看jdk环境 # java -version openjdk version "1.8.0_65" OpenJDK Ru ...

  8. postgresql-分页重复数据探索

    # postgresql-分页重复数据探索 ## 问题背景 许多开发和测试人员都可能遇到过列表的数据翻下一页的时候显示了上一页的数据,也就是翻页会有重复的数据. ### 如何处理? 这个问题出现的原因 ...

  9. 【2019北京集训2】Elephant 平衡树

    题目大意:给你一个长度为$n$的序列$A_i$,有$q$次操作,每次操作为以下三种之一: 询问区间的$F_M(A_i)$的最大公约数. 区间翻转,区间加一个正数. 我们定义$gcd(0,0)=0$,且 ...

  10. python中selenium操作下拉滚动条方法汇总

    UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等:但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了. 比如下面这样一个网页 ...