《WebKit 技术内幕》学习之十五(4):Web前端的未来

4 Cordova项目

        Cordova是一个开源项目,能够提供将Web网页打包成本地应用格式的可运行文件。读者可能对Cordova项目陌生,但是大家可能对它的前身非常熟悉,那就是PhoneGap项目,它后来被Adobe公司收购。

        图15-4描述了Cordova的主要工作思想,对于一个Web应用,结合Cordova提供的本地代码和框架,使用Cordova的打包工具将它们一起打包成一个个同系统相关的本地可执行文件,这里的打包工具不同于前面说的Web的清单文件,而是指将Web应用打包成操作系统支持的本地可执行文件。虽然这些本地文件不能跨操作系统,但是对于Web开发者来说,它确实只需要编写HTML5相关的代码即可,而不需要关注跟平台相关的编程语言和接口,所以不需要有很强的平台背景。

图15-4 Cordova的工作流程

        从图15-4中可以看出,Cordova项目一个重要的特性就是使用系统提供的网页渲染能力,而自身的框架和代码中不包含这一能力,因而它本身没有提供额外的HTML5能力。不过,非常好的一点是,Cordova项目提供了一系列的接口,如Device、NetworkInfo等JavaScript接口,很多接口后来被W3C采用成为标准,这的确非常好地推动了Web的发展。

        Cordova的这一设计极大地方便了Web开发者,使得它在很短的时间内获得了巨大的成功,现在使用PhoneGap打包的Web应用成千上万,下面看一看它的优势和不足之处。

        首先是优势。第一是提供跨平台的支持,它囊括了所有主流的移动操作系统,这使得Web的跨平台优势落到了实处;第二是提供了自动化的打包工具;第三是提供了插件机制,使得开发者扩展Web的能力变得轻而易举;第四是提供了一套Web接口,这些接口提供了访问设备的能力,让更多的需求得到了满足。

        但是,它也存在一些不足之处。首先当然还是它的HTML5能力和性能,严重依赖于操作系统网页渲染模块的能力,典型的问题是很多开发者对于Android上Web运行环境功能和性能的抱怨,笔者曾听到这类问题被多次提及,如HTML5能力支持不足、性能不能满足需求等。另外,由于不同操作系统使用的网页渲染模块不一致,直接导致Web应用在不同平台不能使用相同的HTML5能力和Web接口,典型的例子是Android上不能够使用WebGL等功能,这对于开发者来说绝对不是什么好事。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434828.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lua脚本

Lua脚本 十一、【Lua】11.1.概念11.2.特性11.2.1.轻量级11.2.2.可扩展11.2.3.支持面向过程编程和函数式编程 11.3.应用场景11.4.Lua的安装11.4.1. 点击download可以找到对应版本的下载地址11.4.2. 编译安装11.4.3.如果在执行make linux test失败,报如下错误:11.4.4.…

Redis快的秘密,高性能设计epoll和IO多路复用探究

Redis快的原因,高性能设计epoll和IO多路复用探究 1、多路复用需要解决的问题 并发多客户端连接,在多路复用之前最简单和典型的方案:同步阻塞网络IO模型 这种模式的特点就是用一个进程来处理一个网络连接(即一个用户请求&#x…

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程 和之前实现的YOLOv2一样,根据《YOLO目标检测》(ISBN:9787115627094)一书,在不脱离YOLOv3的大部分核心理念的前提下,重构一款较新的YOLOv3检测器,来对YOLOv3有…

独占指针:unique_ptr 与 函数调用 笔记

推荐B站视频: 2.unique_ptr_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p2&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 3.unique_ptr与函数调用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p3&vd_sourcea934d…

【MyBatis】#{} 和 ${}

目录 1. #{} 使用示例: 2. ${} 使用示例: SQL注入 使用#{}的情况: 使用${}的情况: MyBatis是一种用于Java语言的持久层框架,它简化了数据库操作的过程。在MyBatis中,我们经常会看到两种不同的参数占…

UDF学习(三)数据访问宏

数据访问宏一 网格节点相关宏** NODE_X (v) 节点v的x方向的坐标 (Node *v) NODE_Y (v) 节点v的y方向的坐标 (Node *v) NODE_Z (v) 节点v的z方向的坐标 (Node *v) F_NODE (f,t,n) 获取节点 (face_t f, Thre…

vivado 放置I/O端口

放置I/O端口 I/O规划视图布局提供了几种将I/O端口分配给封装引脚的方法。你可以在“I/O端口”窗口中选择单个I/O端口、I/O端口组或接口,然后分配将它们封装到封装窗口中的封装引脚或设备窗口中的I/O焊盘。在“程序包”窗口中,您可以: •将端…

基于springboot+vue的明星周边产品销售网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

算子:详细篇

目录 一、执行环境 1.1 创建执行环境 1.2 执行模式 二、源算子 2.1 从集合中读取数据 2.2 从文件读取数据 2.3 从socket读取数据 2.4 从kafka读取数据 三、转换算子 3.1 基本转换算子 (1)映射(map) (2)过滤(filter) &#xff08…

用友U8接口-系统管理(3)

教程目录 部署和简要说明(1) 获取token&数据字段(2) 概括 本文的操作需要正确部署U8HttpApi对本套接口系统管理目录说明 系统管理 获取token 参考获取token 根据sql进行查询 此POST方式接口运行调用者传入SQL语句,或者将SQL语句写到xml文件中&#xff0…

软件测试20个基础面试题及答案

什么是软件测试? 答案:软件测试是指在预定的环境中运行程序,为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么? 答案:软件测试的主要目的是保证软件的质量,并尽可能…

mysql INSERT数据覆盖现有元素(若存在)

INSERT...ON DUPLICATE KEY UPDATE的使用 如果指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则会更新ON DUPLICATE KEY UPDATE关键字后面的字段值。 例如,如果列a被定义为UNIQUE&#xff0…