《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.mzph.cn/news/650064.shtml

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

相关文章

protobuf消息定义和使用注意事项

如果涉及到多端通讯,定义的protobuf消息格式可能不一样,会导致出现各种问题,比如名称或者消息的先后顺序,或者每个消息的id顺序不一致,都有可能导致解析不出来,我这里总结一下。 message消息名称可以不一致…

Ubuntu20.4 Mono C# gtk 编程习练笔记(四)

连续实时绘图 图看上去不是很清晰,KAZAM录屏AVI尺寸80MB, 转换成gif后10MB, 按CSDN对GIF要求,把它剪裁缩小压缩成了上面的GIF,图像质量大不如原屏AVI,但应该能说明原意:随机数据随时间绘制在 gtk 的 drawin…

Windows Server 安装 Docker

一、简介 Docker 不是一个通用容器工具,它依赖运行的 Linux 内核环境。Docker 实质上是在运行的 Linux 服务器上制造了一个隔离的文件环境,所以它执行的效率几乎等同于所部署的 Linux 主机服务器性能。因此,Docker 必须部署在 Linux 内核系统…

Leetcode 1268 搜索推荐系统

题目信息 LeetoCode地址: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目理解 这道题的题意不难理解,在我们使用搜索引擎的每一天都会遇到,不需要输入完整的关键词,哪怕仅仅只输入一个字,搜索引…

【ArcGIS微课1000例】0095:横向图例制作案例教程

文章目录 一、加载数据二、高程分级显示三、横向图例四、注意事项一、加载数据 为了便于直观演示,本实验加载一个栅格数据(配套实验数据包中的0095.rar)并进行分级显示,效果如下: 二、高程分级显示 双击dem数据图层,打开栅格数据的【图层属性】对话框,切换到【符号系统…

最长公共子串的问题(正常方法和矩阵法,动态规划)

题目: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符…

Java通过模板替换实现excel的传参填写

以模板为例子 将上面$转义的内容替换即可 package com.gxuwz.zjh.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.HashMap; import java.util.Map; import java.io.IOException; impor…

这些SQL你练习过吗?(网友提供的SQL)

行转列SQL练习 题目 把图1转换成图2结果展示 图1 CREATE TABLE TEST_TB_GRADE (ID int(10) NOT NULL AUTO_INCREMENT,USER_NAME varchar(20) DEFAULT NULL,COURSE varchar(20) DEFAULT NULL,SCORE float DEFAULT 0,PRIMARY KEY (ID) )insert into TEST_TB_GRADE(USER_NAME, CO…

STM32单片机项目之多功能智能小车硬件设计

基于STM32单片机多功能智能小车功能说明: TFTLCD显示按键LVGL(菜单、小车工作模式选择、设置)手机蓝牙遥控模式射频手柄遥控模式5路红外寻迹模式超声波避障模式语音播报低功耗控制 硬件原理图设计 单片机最小系统: 由于要使用…

滴滴开源小程序框架 Mpx 新特性:局部运行时能力增强

Mpx 是滴滴开源的一款增强型跨端小程序框架,自 2018 年立项开源以来如今已经进入第六个年头,在这六年间,Mpx 根植于业务,与业务共同成长,针对小程序业务开发中遇到的各类痛点问题提出了解决方案,并在滴滴内…

NVIDIA Isaac ROS - 入门教程(一)

系列文章目录 前言 欢迎访问 Isaac ROS,这是一套硬件加速、高性能、低延迟的 ROS 2 软件包,用于制造自主机器人,充分利用 Jetson 和其他英伟达平台的强大功能。 查看入门指南,开始使用 Isaac ROS。设置 Isaac ROS Buildfarm&…

如何让思维系统化,拥有「自己的想法」?

先思考一个问题: 如果外星人来访地球,你觉得他们更有可能是善意的,还是恶意的? 你的反应是什么,会如何切入思考? 一般人可能会这样回答: 当然是恶意的,因为要争夺资源啊,…

25考研政治备考计划

各位小伙伴大家好,今天给大家分享的是25考研政治复习备考计划。 政治没有基础阶段,直接就是强化,强化的内容也就是听课,刷题。 【时间安排】 *7-9月中 徐涛老师或腿姐强化课,推荐刷肖1000 *9月中-10月中 背腿姐的背…

ELK+Filebeat 部署实验

Filebeat是轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行…

MySQL介绍、安装和卸载

MySQL入门——网安基础 1. 数据库基本概念2. 数据库类型和常见的关系型数据库2.1 数据库类型2.2 常见的关系型数据库 3. MySQL介绍4. MySQL8的安装和卸载 1. 数据库基本概念 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,…

万物简单AIoT 端云一体实战案例学习 之 空气质量检测系统

学物联网,来万物简单IoT物联网!! 下图是本案的3步导学,每个步骤中实现的功能请参考图中的说明。 1、简介 环境污染、空气污染是人类一直所关心并且讨论的永恒话题,人们对优质的环境和健康的身体非常向往。因此,如果有一种可以检测周围环境的空气质量的设备并且环境数据…

RocketMQ源码分析之消息重试(真相竟然是延时消息)

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 RocketMQ版本 5.1.0 普通消息 消息重试的的实现分并普通消息和顺序消息。两者的重试机制大同小异。我们这里先看看不同消息 这里是官网定义的消息重试次数以及…

docker 存储管理

文章目录 docker 存储管理容器存储方案docker 容器存储解决方案 docker 存储驱动基本概述存储驱动的选择原则主流的 docker 存储驱动docker 版本支持的存储驱动 overlay2 存储驱动OverlayFSoverlay2 存储驱动要求配置 docker 使用 overlay2 驱动 overlay2 存储驱动的工作机制Ov…

Linux的 .bashrc 有什么作用?

一、.bashrc 是什么? 有什么用? .bashrc是一个存储在你的home目录下的隐藏文件,它用来配置和自定义你的终端环境和行为。 每次你启动一个新的终端时,.bashrc文件就会被执行,加载你设置的环境变量,别名,函数…

林浩然矩阵江湖历险记

林浩然矩阵江湖历险记 Lin Haoran’s Matrix Adventures 在那充满神秘色彩的矩阵世界里,林浩然面对的挑战是驯服一个具有六个个性元素的23矩阵——“小三儿”。这个矩阵由两行三列组成,每一个元素都像是棋盘上的一枚棋子,它们紧密排列在一起&…