热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

单线多拨插件安装_用Libcef和Webview2替换miniblink:3+1多内核实现

之前有幸刷到过“Miniblink背后的故事”,第一反应,这么厉害?有事耽搁了,过些时间看了看他的开源仓库,结

之前有幸刷到过 “Miniblink背后的故事,第一反应,这么厉害?有事耽搁了,过些时间看了看他的开源仓库,结果变成闭源了……

不过作者发布的两个dll现在都能用:

  • miniblink_x64.dll:免费版,37MB,wke实现。
  • mb.dll:定制版,2MB,基于上面的dll给出一个定制的实现。

免费版是单线程的,做UI不知如何,当浏览器控件使用却是不够用的,会比较卡。定制版有所改善,不过大概因为内核版本落后,流畅度仍然比不上Libcef。

于是萌生了这样的想法:用 Libcef 替换 miniblink。注意是替换不是取代,可能这两个词没啥区别,但我的意思是,在一个应用程序中兼纳多种浏览器控件,而不是只选择其中一个、而放弃其他的方案。

miniblink 体积较小,将其随应用打包、作为默认的浏览器控件,压缩后仅10MB。Libcef体积较大,让用户按需下载,然后动态(运行时)切换浏览器内核。

Libcef是臃肿,足足178MB,但是性能优秀,内存、CPU占用都不大。

还可以兼容尚未正式发布的 Edge Webview2,须下载安装 Edge insider 试用。

多图警告!

……


e390d82a46c568ce430290e888a26ded.gif

从 Miniblink-mb 切换至 Chromium-Embeded。明显感觉滚动更流畅了。


8dcc0d0d7f0c96c9cd6d4775ee2d407e.gif

切换至Webview2,这个控件的自带功能比Libcef更全,但加载(初始化和页面刷新)最慢。


6aeb4ce79b528adb1c1daf2aa42c6eba.gif

一不做二不休,干脆将Markdown渲染库也做成可以动态切换的。默认是 md.html,编译成单文件main.js,1MB。可选替代 MDViewer,改自 Chrome 插件 Markdown Preview Plus,分散文件、比 md.html 大一些、支持更多格式,类似于 csdn 的编辑器,不过 csdn 集成得更全面。

“将Libcef打造为win32控件”系列:

一:初识Libcef

二:初次封装,拿到浏览器HWND

三:资源拦截替换、JS调用C++ Native、首次运用

题外话 兼容微软Webview2



推荐阅读
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • PyTorch实用技巧汇总(持续更新中)
    空洞卷积(Dilated Convolutions)在卷积操作中通过在卷积核元素之间插入空格来扩大感受野,这一过程由超参数 dilation rate 控制。这种技术在保持参数数量不变的情况下,能够有效地捕捉更大范围的上下文信息,适用于多种视觉任务,如图像分割和目标检测。本文将详细介绍空洞卷积的计算原理及其应用场景。 ... [详细]
  • Win10 S系统与Chrome浏览器兼容性问题分析
    2017年5月2日,微软在美国推出了最新的Windows 10 S操作系统,专为教育领域设计,旨在为教师和学生提供一系列高效的产品和服务。该系统的最大特点是其简洁的设计和快速的响应速度,然而在与某些应用的兼容性方面,特别是Chrome浏览器,仍存在一些问题。本文将深入分析这些兼容性问题,并探讨可能的解决方案。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • Typora快捷键使用指南:提升写作效率的必备技巧 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
  • Markdown语法说明:http:www.appinn.commarkdown1、前端碎片知识总结篇1.1关于浏览器IE的内核是Trident、Mozilla的内核 ... [详细]
  • 应用场景我喜欢用Markdown写文档,但不是所有读者都愿意花时间学习它,所以我需要将Markdown转换为他们习惯接受的格式,比如doc ... [详细]
author-avatar
风云再起2012668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有