开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《PhoneGap精粹:构建跨平台的移动App》——1.4节为容器而设计

简介:
+关注继续查看

本节书摘来自异步社区《PhoneGap精粹:构建跨平台的移动App》一书中的第1章,第1.4节为容器而设计,作者 【美】John M. Wargo,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 为容器而设计
PhoneGap精粹:构建跨平台的移动App
PhoneGap应用程序是一款运行在客户端的原生应用程序容器中的Web应用程序。正因如此,PhoneGap应用程序中的Web应用程序使用的是HTML5应用程序的结构,而不是传统的基于服务端Web应用程序的结构。接下来就让我们看看这个不同的观点。

1.4.1 传统的Web服务器(Web 1.0)方式
对于传统的Web应用程序,Web服务器承载着静态的HTML页面或者动态页面,然后将这些页面返回给客户端(浏览器)。对于动态页面来说,服务器端的语言或脚本语言通常用于(比如从数据库)获取动态内容,还用于将这些内容在发回浏览器之前格式化为HTML。当浏览器发出一个请求时,服务器会去获取相应的页面和内容,然后将这些内容格式化成HTML(或其他类似的,比如XHTML),最后将这些内容发回浏览器显示。

这里我们假定浏览器不需要对内容对任何处理。浏览器只是请求页面,同时为了返回请求的内容服务器会做许多工作。在浏览器上,应用程序可以利用客户端JavaScript代码,让用户和页面上的内容交互,但通常大多数工作会在服务端完成。

1.4.2 Web 2.0方式
随着Web 2.0的出现,Web服务器的负载有了一个下降,取而代之的是在浏览器中运行
JavaScript代码来请求数据和展示数据。Web服务器向Web应用程序发送了一个基于HTML的封装,随页面一起发送过去的JavaScript代码会动态组织页面的内容区域,根据需要显示或隐藏数据内容。

Web 2.0应用程序之所以会成功主要是因为JavaScript中的XMLHTTPRequest(XHR) API。该API让web应用程序可以异步地向服务器发送请求,并当从服务器获取数据后处理这些数据,而不用打断用户的当前操作。许多PhoneGap应用程序都大量使用XHR与远程服务器交互。

该方式可以支持更多有趣的Web应用——看起来更像原生桌面应用的应用程序。虽然Web服务器还是需要用来承载提供给浏览器的页面和内容,但是几乎不会直接操作数据。Google Maps(http://maps.google.com)或Google Gmail(http://mail.google.com)都是很好的Web 2.0的例子。

1.4.3 HTML5方式
移动设备需要一个稍微不同的方式。虽然Web 1.0和2.0在智能机上可以很好地工作,但对Web 1.0的应用来说,在服务器和设备间需要传输大量的数据。对Web 2.0的应用来说,虽然没有这方面的问题,但是需要不断使用网络。Google甚至为了解决这个问题,发明了一项名为Google Gears(http://gears.google.com)的技术,该技术在客户端提供了一个SQL数据库和其他一些功能,用来保证即使无法访问Web服务器,Web应用程序仍然可以正常工作。但后来,他们停止了这个项目,转而投入帮助起草HTML5的标准。

通过HTML5,Web应用程序可以使用一些新的功能,这些功能在移动设备(或受限于网络连接的设备)上可以更高效地运行。通过HTML5,Web应用程序可以使用客户端的数据库去保存应用程序数据。对移动设备来说,这使得无论在有网络还是无网络的情况下,操作都会变得更简单。此外,HTML5还支持使用manifest(声明)文件,列出Web应用程序会用到哪些文件。当加载了Web应用程序的index文件时,浏览器将读取manifest文件,并且接收该文件中列出的所有文件,并下载到客户端设备中。如果移动设备无法连接到网络,只要manifest文件中列出的文件已经保存在了设备上,那么应用程序通过使用本地保存的数据还是可以继续工作的。

虽然我们需要为Web应用程序特地编写程序才能使用这些HTML5的能力,但该Web应用程序可以在浏览器容器(或在PhoneGap应用程序容器)中独立运行。通常,index.html文件只是应用程序中的HTML文件,同时该应用程序的不同“屏幕”1实际上只是根据需要移入移出的不同

容器。HTML5应用程序仍然需要向服务器请求所需的数据,你可以通过使用XHR异步地请求数据并根据需要保存在本地。

Web开发人员必须反复思考利用这些HTML5能力的Web开发方式。HTML5应用程序在移动设备上应该是可以自给自足2的,而不是向web服务器请求各种信息。

运行在PhoneGap应用程序中的web应用程序就是一个HTML5应用程序。

1译者注:指不同的显示界面。
2译者注:指不需要依赖Web服务器也可以独立运行。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
App设计的基本原则和规范
为了能在交互设计和用户体验上做出比竞品更优秀的移动APP产品,我们必须知道移动设计的基本原则。 目前移动设计在我们的工作中越来越重要啦,除了掌握基本的UI设计技能之外,我们也要对移动互联网的特征有所认识。
2405 0
Uni开发的app,使用Windows S10,放在ios上,全程跟着一个马平川。
其实在我写这篇文章的时候,很多版本的app都已经更新了,但是突然有一天我觉得如果我不把它们记录下来,它们就会被遗忘,现在越来越多的人在用uniapp开发app。
9 0
Android 天气APP(一)开发准备
Android 天气APP(一)开发准备
28 0
使用APICloud开发app的动态权限及Android平台targetSdkVersion设置教程
targetSdkVersion:自2018年11月开始,GooglePlay以及国内大部分应用市场要求app编译目标SDK必须为26及以上,否则不予提交审核;有许多已有app转到APICloud开发后,因targetSdkVersion降级而导致无法覆盖安装;2020年以来,国家网信办等监管机构也加强了对app权限合规的监管。
107 0
一对一直播app开发实现多线程,实现原理分析
一对一直播app开发实现多线程以后,还要实现线程之间的调度,线程可以通过两种方式实现调度,一是分时调度,二是抢先式调度,技术人员可以选择更合适的调度方式。
60 0
直播app源码备受关注,如何开发更具竞争实力?
直播app源码备受关注,如何开发更具竞争实力?
39 0
相亲app开发支付系统,异步处理方式的合理运用
相亲app开发支付系统,异步处理方式的合理运用
39 0
一对一直播app开发应该了解这些开发原则
一对一直播app开发原则还有接口隔离原则、依赖倒转原则和合成/聚合复用原则,同时也要注意函数的同步调用或异步调用,从多方面优化系统,提升系统稳定性。
83 0
零基础如何上手APICloud App、小程序多端开发
业务需求变化快、开发人员成本高是现在企业面临的主要问题。多端开发技术则可以很好的解决这些问题,开发一次可以生成iOS、Android、小程序、Web等多端应用。APICloud凭借多年的移动开发技术积累,为开发者提供了一套高性能的多端开发技术,可以高效的开发企业级应用程序。
674 0
Android开发:App点击跳转到网页的实现
在Android开发过程中,点击App里面的控件进行网页跳转是经常会遇到的需求,但是Android的网页跳转有两种方式实现App点击控件跳转到网页,第一种就是App里面的代码根据网址链接进行网页跳转,第二种就是根据Webview控件进行网页跳转。
257 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
使用TensorFlow搭建智能开发系统自劢生成App UI代码
立即下载
混合APP开发模式为什么成为主流
立即下载
去哪儿网快速 App 开发及问题解决平台实践
立即下载