已经使用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,但这些也着实是乐趣无穷。

最新文章

  1. EditText键盘弹出时,会将布局底部的导航条顶上去(解决方法之一)
  2. NIO的一些相关链接
  3. Mysql技术内幕(第四版)读书笔记(一)
  4. DataTable添加行和列数据
  5. Atom使用心得 - 21世纪的编辑器
  6. Swift-1-基本概念
  7. ilasm.exe与ildasm.exe的使用(编译与反编译)
  8. Python 手册——参数传递以及交互模式
  9. Css3 javascript 写的分类
  10. 建立ORACLE10G DATA GUARD--->Physical Standby
  11. 百度地图 Android SDK - 个性化地图
  12. ABP应用层——数据传输对象(DTOs)
  13. 快速掌握 Android Studio 中 Gradle 的使用方法
  14. CSS3——复杂选择器
  15. 边做边学入门微信小程序之仿豆瓣评分
  16. 联发科Helio P90,MT6779VWB芯片处理器
  17. Python基础:一、编程语言分类
  18. Apex单元测试
  19. spring-data-jpa初步认识
  20. mysql查询INFORMATION_SCHEMA表很慢的性能优化

热门文章

  1. Nginx学习笔记(七) 创建子进程
  2. [WinAPI] API 8 [获取磁盘空间信息]
  3. ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
  4. [BTS] Action demo In BizTalk WCF-SAP Adapter
  5. CLIQUE 聚类算法以及Java实现+多线程
  6. 近期code review几处小问题集锦
  7. SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器
  8. iOS开发之静态库(六)—— 时空之争
  9. HTML5语义元素
  10. Abstract Server模式,Adapter模式和Bridge模式