《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等功能,这对于开发者来说绝对不是什么好事。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Topaz Video AI:无损放大,让你的视频更清晰!

在当今的数字时代,视频内容的重要性越来越受到人们的关注。无论是在社交媒体上分享生活片段,还是在商业领域中制作宣传视频,人们都希望能够展现出更高质量的视频内容。 然而,由于各种原因,我们经常会面临一个问题&…

港口集装箱堆场温湿度监控MQTT无线传输智能节点

设备互联互通的时代已经到来,不同的设备之间需要实现数据互通,提高生产效率和管理效率。因此,一款功能齐全、性能稳定的设备显得尤为重要。我们来介绍一款4G/5G无线远程io模块。具有8DI兼容干湿节点、4DO继电器、6AI可选电流型4-20mA电压型0-…

常规的管理系统除了适用该有的范儿一定要有!气质上不能输

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 常规的管理系统除了适用该有的范儿一定要有!气质上不能输 在现今快速发展的商业环境中…

HCIA学习作业三

要求&#xff1a; 拓扑图&#xff1a; <AR1>ping 5.5.5.1 <AR1>display ip interface brief <AR1>display ip routing-table <AR1>display ip routing-table protocol static <AR2>ping 5.5.5.1 <AR2>display ip interface brief <…

openssl3.2 - 测试程序的学习

文章目录 openssl3.2 - 测试程序的学习概述笔记openssl3.2 - 测试程序的学习 - test\aborttest.copenssl3.2 - 测试程序的学习 - test\sanitytest.copenssl3.2 - 测试程序的学习 - test\acvp_test.copenssl3.2 - 测试程序的学习 - test\aesgcmtest.cEND openssl3.2 - 测试程序的…

Redis2-事务 连接Java 整合springboot 注解缓存

一、订阅和发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以收到消息 发布订阅的代…

C# 使用 SapNwRfc 调用SAP RFC

好久没写过相关代码&#xff0c;今天又来贡献一篇 C# 使用 SapNwRfc 调用SAP RFC。用VS2022的WINFORM应用程序&#xff0c;使用NuGet中的SapNwRfc类库&#xff0c;call SAP系统中的RFC&#xff0c;传入7个参数&#xff0c;得到RFC返回的2张表的数据。 一、VS2022中新建WINFORM…

【汇总】解决Spring-Web与Spring-WebFlux冲突

【汇总】解决Spring-Web与Spring-WebFlux冲突 问题发现问题解决问题一&#xff1a;The bean requestMappingHandlerMapping, defined in class path resource [org/springframework/web/reactive/config/DelegatingWebFluxConfiguration.class],问题二&#xff1a;The Java/XML…

C语言-算法-背包

[USACO07DEC] Charm Bracelet S&#xff08;01背包&#xff09; 题目描述 Bessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. E…

基于frp工具实现内网穿透,跨局域网远程SSH登录

文章目录 一.概述1.1 为什么要内网穿透&#xff1f;1.2 什么是frp&#xff1f; 二.frp安装管理流程2.1 frp下载2.2 部署2.3 通过systemd系统服务管理启动程序 三.frp配置测试&#xff08;通过SSH访问内网机器C&#xff09;3.1 服务端配置文件frps.toml修改3.2 客户端配置文件fr…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展&#xff0c;网络传输中的数据安全性受到了前所未有的关注。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;为数据在客户端和服务器之间的传输提供了加密和身份验证&#xff0c;从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…

护眼落地灯哪个牌子更好更专业?经典落地灯排名

不知道各位家长有没有发现&#xff0c;近几年来小小年纪就戴眼镜的孩子真的越来越多了&#xff01; 根据专家数据统计&#xff0c;在全国青少年近视率中小学生就占其40%比重&#xff0c;也代表了10个学生中就有4、5个是戴眼镜的。造成这个趋势的原因也不难理解&#xff0c;一是…

多个SSH-Key下,配置Github SSH-Key

首先&#xff0c;检查 github 的连接性&#xff0c;因为DNS污染的原因&#xff0c;很多机器ping不通github&#xff0c;就像博主的机器&#xff1a; 怎么解决DNS污染的问题&#xff0c;博主查了很多教程&#xff0c;测试出一个有效的方法&#xff0c;那就是修改hosts文件。host…

dubbo和eureka的区别

dubbo可以作为客户端&#xff0c;也可以作为服务端&#xff0c;因此他内置了很多序列化框架可供选择&#xff0c;通过配置可以进行选择。默认是hession&#xff0c;还有gson&#xff0c;fastJson&#xff0c;jdk自带的序列化。 eureka只能作为服务端&#xff0c;他序列要与客户…

01_ESP32 MicroPython开发环境搭建

一、工作原理 Python源代码->Python解释器(MicroPython)-->二进制代码(01010)-->硬件电路(ESP32)-->高低电平输出-->其他设备 二、准备工作&#xff1a; 硬件&#xff1a;ESP32开发版&#xff0c;有很多个版本可选&#xff0c;我这里用的是ESP-32开发板&…

关于一个微信自动回复的平台

这是去年整的项目&#xff0c;源码在此。那个时候刚好在学习golang&#xff0c;那么学了那不得用起来嘛&#xff1f;于是就mk代码。 基本功能如下 pc端&#xff1a;主要功能就是登陆微信。 微信小程序&#xff1a;主要是为了方便管理自动回复的状态&#xff0c;在pc端登陆完…

【CANoe使用大全】——报文发送(IG)

&#x1f64b;‍♂️【CANoe使用大全】系列&#x1f481;‍♂️点击跳转 文章目录 1.仿真报文概述2.IG模块的使用2.1.IG模块打开方式 3.添加报文4.添加报文后的配置4.1.发送方式配置4.1.1.鼠标触发4.1.2.键盘触发4.2.3.周期发送 4.3 信号值修改编辑 1.仿真报文概述 报文发送一…

每日一题——LeetCode1346.检查整数及其两倍数是否存在

方法一 循环查找 用indexOf查找每个元素的两倍是否存在在数组中&#xff0c;找到了就直接return true&#xff0c;循环结束还没找到就return false var checkIfExist function(arr) {for(let i0;i<arr.length;i){let index arr.indexOf(arr[i]*2)if(index>0 &&…

代码随想录算法训练营第十六天 |104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数(待补充)

104.二叉树的最大深度 1、题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长…

可以实时监控电脑的软件有哪些?好用的四款电脑监控软件【高人气收藏分享】

在当今数字化时代&#xff0c;电脑已经成为我们工作和生活中不可或缺的工具。然而&#xff0c;有时候我们需要对电脑进行监控&#xff0c;以确保工作效率和保护个人隐私。因此&#xff0c;选择一款好的电脑监控软件非常重要。本文将介绍四款好用的电脑监控软件&#xff0c;并探…