从今天起,记录CEF使用开发心得经验
已经使用CEF来呈现桌面程序界面大半年了,从来没有写过相关博文。发现网上的中文资料甚至英文已经无法满足我的开发需求,不少问题只得自己探索。在此先谢过网络上各位CEF使用开发博文的贡献者,没有你们我也难易快速入手。实在惭愧,由于精力有限,自己捣鼓出来的东西一直没有贡献出来。好吧,从今天开始,面朝大海,春暖花开。
原先公司的C++程序界面用GDI+来做,甚是麻烦。后来客户想要类似豌豆荚那样的风格,小清新。研究了下豌豆荚,发现它的界面八成是JavaScript,用CEF来嵌入Web页面。此前也听一朋友提过Chrome源码之类云云,也知道现在不少桌面程序界面用JavaScript来做,开发效率高于C++。一直烦心于C++的界面开发,不安分的我也有极大的兴趣去做新的尝试,青春在于折腾。不过公司的程序一直以来采用的是WebBrowser控件,作为过渡,先在其上做界面。JavaScript边学边做,没办法,小公司,好多事情都要自己干,俨然成了一个全栈程序猿。
真正使用CEF的契机来自于一个棘手的问题。引入了一个JQuery图表插件来显示饼状图。但考虑到客户的运行环境多元化,IE各个版本都有哦,甚至于IE6还占到20%以上。一次兼容性测试,发现该插件在IE8上死活用不了,调了两天,搞不定。一怒之下,花了一周,替换成了CEF,为了解决C++与JavaScript互相调用产生死锁,做了消息循环队列,来进行异步调用,也大致理解NodeJs采用异步的妙处。此后种种日后再做分说。
当然CEF对于HTML5、CSS3以及JavaScript标准的支持确实很棒,可定制性也很高,不过从另一层面也因为它的灵活带来了不少的麻烦。比如没有IE那样的右键菜单,要自己做,如果不去修改CEF的内部代码,还需要去HOOK,但这些也着实是乐趣无穷。
从今天起,记录CEF使用开发心得经验的更多相关文章
- 安卓版App开发心得
从2016年4月到6月主要做的工作是网站的开发,而6月到现在2016年8月初,主要做的工作是Android和IOS两种App的开发,又以Android为主. 将这段时间的Android开发心得记录如下 ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- AEAI Portlet开发心得
1 背景概述 Portlet是AEAI Portal组件API,是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容.AEAI Portal中已经预置了许多Portle ...
- Qt在线技术交流之OpenGL、Quick以及所经历项目开发心得分享
时间:3月25日晚上7:30 主题:Qt在线技术交流之OpenGL.Quick以及所经历项目开发心得分享 直播:http://qtdream.com 主页.全民TV,可能会加上其他的直播平台进行转播 ...
- QQ空间里写的开发心得
不回头看一眼还真没发现我已经写过这么多开发心得日志. 理一理设备数据走向 https://user.qzone.qq.com/1156740846/blog/1522292793 action的生命 ...
- Java程序员转Android开发必读经验分享
小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...
- Java2年开发工作经验面试总结
Java2年开发工作经验面试总结最近换了个公司,从二月底开始面,面到三月底,面了有快二十五家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些 ...
- thinkphp开发技巧经验分享
thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...
- 我的 Android 开发实战经验总结
我的 Android 开发实战经验总结 字数4440 阅读5137 评论43 喜欢250 曾经一直想写一篇总结 Android 开发经验的文章,预计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟 ...
随机推荐
- C#设计模式(11)——外观模式(Facade Pattern)
一.引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ...
- 读《你必须知道的.NET》继承本质论 Bird bird=new Chicken()
我们创建如下的三层继承层次类. public abstract class Animal { public abstract void ShowType(); } public class Bird ...
- Linux:Linux 重要人物
1.Ken Thompson:C 语言之父和 UNIX 之父 2.Dennis Ritchie:C 语言之父和 UNIX 之父 3.Stallman:著名黑客,GNU 创始人,开发了 Emacs.gc ...
- 最新 Windows 10 应用项目模板发布
以下是最新的Visual Studio 2015 Windows 10 应用程序模板. Windows 10中几乎所有的官方应用都遵循这样一个设计模板:在左上方有一个所谓的导航栏.点击该导航按钮,左侧 ...
- Java Web指导方向
第一阶段 第二阶段 第三阶段 第四阶段 第五阶段 第六阶段 第七阶段 第一阶段:Java程序员 技术名称 内 容 说明 Java语法基础 基本语法.数组.类.继承.多态 ...
- Spring - 初始化spring容器
2016.01.12 学习linux内核的过程中发现变相的提升了自己的工程能力.以前觉得spring这些东西很复杂麻烦.然而,学了linux内核再看这些东西,发现好简单. 学习spring首先就要学习 ...
- eclipse 远程调试
http://blog.sina.com.cn/s/blog_86a6730b0101iean.html 注:远程服务器端可用以下方式替代: iptables -I from_external 3 - ...
- cached过高导致内存溢出 java head space
最近公司线上遇到老是内存溢出检查后发现cached过高 命令:free -m 命令:sync //将缓存写入硬盘 cat /etc/redhat-release 这个是查看系统版本的命令c ...
- swap函数的四种写法
swap 函数的四种写法 (1)经典型 --- 嫁衣法 void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } ( ...
- Which Clang Warning Is Generating This Message?
Which Clang Warning Is Generating This Message? 根据前面页面制作的pdf:clangwarninglist.pdf 百度网盘:http://pan.ba ...