很难对性能缓慢和重定向问题做出假设。下面您可以找到我认为影响由 HTML5、CSS3、JavaScript 组成的移动应用程序性能的一些方面,应在分析、设计和开发阶段予以考虑。
根据尺寸实现方法
开发小型移动应用程序时,建议使用使用内部 AJAX 页面链接的单个 HTML 页面。对于较大的移动应用程序,建议使用具有内部 AJAX 链接的不同 HTML 页面的方法。尝试创建可重用的页面模板。
页面转换
如中所述jQM 1.1.1 文档 http://jquerymobile.com/demos/1.1.1/docs/pages/page-transitions.html,默认情况下,除淡入淡出之外的所有过渡都需要 3D 变换支持。缺乏 3D 支持的设备将回退到淡入淡出过渡,无论指定的过渡如何。 jQM 这样做是为了主动从高级过渡中排除 Android 2.x 等性能不佳的平台,并确保它们仍然拥有流畅的体验。请注意,有些平台(例如 Android 3.0)在技术上支持 3D 变换,但动画性能仍然较差,因此这不能保证每个浏览器都 100% 无闪烁。考虑上述因素后决定您将使用的过渡类型。
缩小 JS 和 CSS 文件
每个页面都应该尽可能轻量。缩小的目标是保留代码的操作质量,同时减少其总体字节占用量。 WEB 上有很多可用的工具,例如YUI压缩器 http://developer.yahoo.com/yui/compressor/, the Minify http://code.google.com/p/minify/还有很多。此外还有类似的工具JLint http://www.jslint.com/用于检查JavaScript源代码是否符合编码规则。JLint http://www.jslint.com/是一个代码质量工具,用于检查 JavaScript 代码中的问题。报告的问题不一定是语法错误,而可能是结构问题。请注意,JLint 并不证明您的代码是正确的。将其视为一个帮助工具。还有一些用于执行 CSS 优化的工具。优化可帮助您获得更小的 CSS 文件大小和更好的编写代码。你可以在 WEB 上找到很多可用的 CSS 优化器,例如CleanCSS http://www.cleancss.com/index.php and CSSTidy http://csstidy.sourceforge.net/.
组件限制
建议将 HTML 页面限制为 25kb,以便为大多数移动 Web 浏览器获得最佳缓存优势。缓存限制因操作系统版本而异。例如,Android 2.1 的缓存限制约为 2Mb。
HTML5 和 CSS3
尝试创建易于阅读、扩展和可重用的代码。充分利用 HTML5 和 CSS3 的优势非常重要。 HTML5 DocType 声明(<!DOCTYPE html>
) 应该是 HTML5 文档中 html 标记之前的第一个内容。它是向 Web 浏览器发出的有关页面使用什么版本的 HTML 编写的指令。
Use the W3C mobileOK 检查器 http://validator.w3.org/mobile/
The W3C mobileOK 检查器 http://validator.w3.org/mobile/是 W3C 提供的一项免费服务,可帮助检查 Web 文档的移动友好性级别,特别是断言 Web 文档是否适合移动设备。当网页通过所有测试时,它就可以移动。测试在 mobileOK 中定义基本测试 1.0 规范 http://www.w3.org/TR/mobile-bp/。要理解为什么检查 Web 文档的移动友好性确实很重要,可能值得强调有关所谓移动世界的几点。与普通台式电脑相比,移动设备乍一看可能被认为是有限的:屏幕尺寸较小、处理能力较小、内存量较小、没有鼠标等等。与固定数据连接相比,移动网络速度可能很慢,并且通常具有较高的延迟。与坐在计算机前的用户相比,移动用户的时间有限并且很容易分心。除了这些限制之外,移动世界高度分散:许多不同的设备,每个设备都定义了一组独特的支持功能。
考虑不同屏幕尺寸上的外观
针对不同的屏幕尺寸时,应考虑屏幕密度、视口尺寸和网页的比例。视口元数据可用于定义视口大小,其中视口是绘制页面的容器区域。视口比例定义应用于网页的缩放级别。 target-密度dpi视口属性和CSS、JS技术可用于更改网页的目标屏幕密度。网络上有很多关于不同屏幕尺寸上的外观的文章。
识别具有潜在延迟的流量
The PageSpeed Firefox/Chrome 扩展 https://developers.google.com/speed/pagespeed/可用于检查页面速度。当您使用 Page Speed 分析网页时,它会评估该页面是否符合许多不同的规则。这些规则是通用的前端最佳实践,您可以在 Web 开发的任何阶段应用。该扩展提供了有关如何最好地实施规则并将其纳入开发过程的具体提示和建议。
我希望这有帮助。