带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(1)

简介: 带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(1)

跨桌面端Web容器演进

image.pngimage.png作者:鲍晓鹏(汉闻) 出品:大淘宝技术

 

 

浏览器是大家所熟悉的。本文会从容器的架构演进,容器的功能增强和稳定性保障及未来的演进,这3个方面介绍一下我们的应用程序是如何对接浏览器的能力的。有问题的地方欢迎大家指正,也欢迎对浏览器内核感兴趣的同学一起探索。

此文为本系列文章第二篇,

第一篇:跨全端SDK技术演进 本文:跨桌面端之Web容器演进第三篇:跨桌面端之组件化实践

 

背景

 

随着客户端技术的逐渐发展,Web容器已经深入客户端,为客户端构建了丰富多彩的页面和交互体验,成为客户端 的一个不可或缺的重要组成部分。在千牛客户端上,Web容器不仅承载了千牛的开放容器(经历了H5插件到千牛 小程序的变革),而且一些核心功能,比如聊天窗口,消息中心,也都是由Web容器承载的。

 

一开始,Web容器在不同的操作系统有各自的选择,比如在Widnows上的IE内核,而在Macos用WKWebview。  但是随着Chrome的发展,渐渐的Chromium开始一统江湖。大家也开始基于开源的Chromium定制自己的内核。自己定制的内核不仅有着跨端的特性,而且能很好的支持前端的业务诉求。千牛也在此时定制了自己的web容器AEF,全称Application Embedded Framework。

 

容器的架构演进

Application Embedded Framework(AEF)

 

AEF是千牛自己是基于chromium源码定制的内核。

 

 

 

image.png

 

AEF的框架结构

 

概括来看AEF框架主要封装了如下功能

 

 

  1. 控件接口,暴露接口给PC客户端,比如支持浏览网页,前进,后退,刷新,强制刷新,中止等功能
  2. 事件响应,AEF上面开放了很多事件出来,供应用来决定是否处理相应的事件,比如文档加载完成,页面加载失败,资源加载失败,页面发生崩溃,标题发生刷新,url发生重定向等。
  3. JS和本地C++的交互,这个是通过render delegate直接向WebKit注册native sdk的dll,再通过事件发送到PC 客户端完成的。
  4. 丰富的扩展功能,比如定制自定义协议alires,完成本地包的加载和支持打印等功能。

 

 

带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(2)https://developer.aliyun.com/article/1340344?groupCode=taobaotech


相关文章
|
8天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
14天前
|
资源调度 JavaScript 前端开发
IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践
这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题和解决方法。
25 2
|
15天前
|
SQL 安全 数据库
如何构建一个安全的Web应用:技术与策略的全面指南
【6月更文挑战第12天】构建安全Web应用的全面指南:了解SQL注入、XSS等威胁,采用输入验证、安全编程语言,配置安全服务器和数据库,使用HTTPS,实施会话管理、访问控制,正确处理错误和日志,定期进行安全审计和漏洞扫描。确保用户数据和应用安全。
|
4天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
4天前
|
存储 运维 Kubernetes
容器化技术在现代运维中的应用与挑战
【6月更文挑战第23天】随着云计算技术的不断进步,容器化技术已经成为现代运维的重要组成部分。它以其独特的轻量级、可移植性和易于管理的特性,为运维工作带来了革命性的变化。本文将深入探讨容器化技术的核心概念、优势以及在实际应用中遇到的挑战,同时提供应对这些挑战的策略和建议,帮助运维团队更有效地利用容器化技术提升运维效率。
|
6天前
|
存储 运维 监控
容器化技术在现代运维中的应用与挑战
【6月更文挑战第20天】随着技术的迭代和云计算的普及,容器化技术已经成为现代运维不可或缺的一部分。本文将深入探讨容器化技术的核心优势、面临的主要挑战以及在企业运维中的实际应用案例,旨在为运维人员提供容器化部署和维护的实用指南。
|
7天前
|
存储 安全 Java
在Spring Boot Web应用中,会话技术和会话跟踪
在Spring Boot Web应用中,会话技术和会话跟踪
19 2
|
15天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
101 2
|
12小时前
|
移动开发 开发框架 JavaScript
技术心得记录:手机Web开发框架
技术心得记录:手机Web开发框架
|
1天前
|
前端开发 Java
技术经验分享:idyll开源生成交互式web的标记语言试用
技术经验分享:idyll开源生成交互式web的标记语言试用