写点什么

微软 Web 应用的发展过程

  • 2016-07-18
  • 本文字数:1244 字

    阅读完需:约 4 分钟

近日,微软 Edge 团队发表了一篇博文,介绍Web 应用在微软的发展过程。本文将择要介绍Web 应用如何从一个“大型的文档空间(a large universe of documents)”演化成了如今的通用应用程序平台。

在Windows 上,最早的Web 应用形态可能是IE9 引入的“钉选网站(Pinned Sites)”。所谓的钉选网站是指站点可以固定到Windows 7 任务栏,并且可以使用自定义的图标。后来,该特性提供了一个类似清单文件的东西,告诉平台该站点可以“像一个应用”那样运行,并提供了如何集成到主屏幕/ 开始菜单的详细信息。而且,当W3C 推出了相应的清单文件标准时,他们欣然采用了新的标准。

Web 应用的真正出现是在 Windows 8 上。有段时间,Windows 8 去掉了开始菜单,其初衷是为了让 Web 成为 Windows 上的一等公民,让 Web 真正可以在浏览器之外运行,而且不需要原生代码。从技术上讲,浏览器进程甚至都没有参与 Web 应用在 Windows 上的运行,减少了内存 /CPU 的工作负载,每个 Web 应用都有自己的缓存。Web 应用完全整合进了 Windows 的应用模型,让用户可以管理通知,离线或在后台运行应用,甚至像原生应用那样卸载它们。开发人员可以更深入地集成平台,使用一些 Web 平台原本不具备的原生功能。微软创建了类似 chrome.* namespace 的 Windows Runtime JS APIs。自此,WinRT 孕育了 Pointer Events Web Notifications Push API Web Payments 等 API,使 Web 应用可以更快地用上原生功能。

为了将 Web 应用打包,创建离线优先的用户体验,让其直接与原生应用进行竞争,Windows 10 提供了“托管Web 应用(HWA)”。它提供了一个简单的清单文件,指向Web 应用的URL。HWA 应用可以像打包的应用那样独立于浏览器运行,但实时从服务器加载,让用户可以免于冗长的应用商店提交过程。

Progressive Web App(PWA)是 HWA 的一个自然扩展。本质上,PWA 是 HWA 加上如下已经在开发的标准:

在许多方面,现有的 PWA 实现(Android 上的 Chrome/Opera/Samsung)仍然把 Web 应用作为二等公民。它们有主屏幕快捷方式,但不会出现在应用列表中,也不会报告存储 / 数据 / 电池的使用情况,无法配置、管理、卸载等。微软的目标更进一步,他们希望解决这些问题,提供全功能的应用。

目前,正在进行的工作有以下两项:

  1. 实现上述标准;
  2. 在 Windows 应用商店中构建对 W3C Web 应用清单的支持

第一项工作让 PWA 可以通过 Chrome/Opera 运行在 Android 平台上,或者通过 EdgeHTML 运行在 Windows 平台上。第二项工作让 PWA 可以出现在应用商店的列表中,并在浏览器页签之外运行。如何在应用商店中列出 PWA,用户如何在 Windows 上安装 PWA,这是微软正在努力解决的两个实际问题。感兴趣的读者可以关注 Edge 开发的官方 Twitter


感谢韩婷对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-18 19:001824
用户头像

发布了 1008 篇内容, 共 393.5 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

什么是区块哈希?哈希游戏开发技术原理方案(源码搭建)

开发微hkkf5566

大数据ETL自动化调度运维专家-TASKCTL

敏捷调度TASKCTL

Docker 大数据 程序员 DevOps 数据仓库

密码学系列之:ASN.1接口描述语言详解

程序那些事

密码学 程序那些事 5月月更 ASN.1

模块七:作业

本人法海

「架构实战营」

最佳实践|从Producer 到 Consumer,如何有效监控 Kafka

阿里巴巴云原生

kafka 阿里云 云原生 Promethues

图解|高性能服务器设计之缓存系统一致性

C++后台开发

redis 后端开发 Linux服务器开发 高性能服务器 系统缓存

React Echarts 使用教程 - 如何在 React 中加入图表(内附数据看板实战搭建案例)

蒋川

react.js 可视化 eCharts 组件库 图表库

直播预告|来啦!「DevOps+MLOps Meetup」火热报名中!

第四范式开发者社区

人工智能 DevOps 极狐GitLab 特征平台 MLOps

谁需要实验室内部管理系统?

低代码小观

实验室管理系统 数据管理系统 LIMS实验室信息管理系统 企业管理工具 检查系统服务

MASA Auth - SSO与Identity设计

MASA技术团队

C# .net 设计 构架 Auth

Hadoop3.0时代,怎么能不懂EC纠删码技术?

个推

大数据 hadoop hadoop3 大数据 开源

虚拟化解决方案 virtio 的技术趋势与 DPU 实践解读 | 龙蜥技术

OpenAnolis小助手

虚拟化 技术分享 DPU 龙蜥大讲堂 云豹智能

HashSet源码分析-基础结构

zarmnosaj

5月月更

技术分享 | Javaer 如何做单元测试?

LigaAI

Java 单元测试 LigaAI

【LeetCode】单词距离Java题解

Albert

LeetCode 5月月更

融云漫话:通信中台

融云 RongCloud

元宇宙用户已准备就绪,但技术瓶颈仍制约其真正“落地”

CECBC

元宇宙的十大经济规则

CECBC

【智人智语】史赛克全球数字化、机器人及赋能技术总裁柯若博:世界智能大会是一个非常重要的盛会

InfoQ 天津

如何实现24/7客户服务自动化?建设智能客服知识库

小炮

从Oracle日志解析学习数据库内核原理

沃趣科技

oracle 数据库内核

免费领 CRMEB 移动社交电商系统源码与授权

CRMEB

ETH合并在即,这次升级将带来哪些机遇?

区块链前沿News

以太坊 eth Hoo

周六晚8点,如何基于 eBPF 技术构建应用可观测平台?

OpenAnolis小助手

Linux 直播 内核 龙蜥社区 sig

打造会“找”主人的麦克风,腾讯个性化语音增强技术荣获2022数博会领先科技成果奖

科技热闻

怎么用netty开发一个同时提供http和websocket的服务?

风斩断晚霞

Java spring Netty springboot websocket

MDM结合ESB数据集成说明

agileai

数据治理 数据集成 企业服务总线 主数据平台 基础数据方案

中国20强游戏公司2021年财报分析:业绩大分化时代,开始优胜劣汰

易观分析

游戏公司

浪潮云应用质效管理系统(AOM)荣获2022数博会领先科技成果“优秀项目”奖

云计算

面向服务的架构

力软低代码开发平台

200多家ISV入驻!阿里云计算巢发布一周年

阿里云弹性计算

计算巢

微软Web应用的发展过程_微软_谢丽_InfoQ精选文章