用java实现浏览器

 目前主要RIA平台是Flex和Silverlight,这两个平台都是对浏览器进行扩展,从而实现WebAppliation的富客户端交互体验。 而最早的RIA原型应该属于java的applet,但早期java的性能问题,java的ui丑陋的问题使得applet技术没有推广成功,java后 期对ui的改进和性能的提升,加上Sun公司的java plugin技术,还是没能挽回applet的命运,主要原因是applet第一次启动慢,跟现在浏览器的兼容也是令人头疼的问题,毕竟java和浏览器 不是原生搭配,总会有这样那样的问题。另一个问题是java虽然有强大的类库,但没有做好封装,可以让网络应用开发人员方便的开发。那如果用java实现 一个浏览器,效果会怎么样呢?
 java语言自身的安全性,强大的类库,强大的动态下载代码运行能力,近两年性能的提升,这些都是用java实现浏览器的有利条件。另外我接触了一些企 业开发商,传统的bs和cs结构两套代码,维护极为不便,如果能在java实现的浏览器中解决这些问题,对企业开发商来说也是福音。
基于上面的基本设想,我利用业余时间写了一个java浏览器(暂叫jbrowser),参考了开源的lobobrowser (www.lobobrowser.org),firefox(www.mozilla.org),webkit(www.webkit.org)的代 码,我的目标首先是兼容现有的网页,如果这个做不到,用户就很难切换到新的平台上。目前基本静态网页布局和绘制还有一些bug,但总体来说布局和绘制的效 果还不错,基本上和firefox布局和绘制的一样。我用来测试的网页是从www.oswd.org网站上下载的模板,这些网页主要是用css控制页面布 局,这个现在是网页制作的主流,也是w3c推荐的,用table进行布局和在网页中使用格式化tag属于css出来之前的主要格式化手段,现在可以扔掉 了。
目前jbrowser对js已有基本支持,js引擎使用的是mozilla的Rhino( www.mozilla.org/rhino), Rhino的性能非常好,且最新版也有对js执行的完全问题考虑。但我并不想对js这块进行太多优化,我的目标是让java成为jbrowser的“脚 本”语言,用户在网页中引用编译打包的jar文件,这样网页中代码的执行效率应该非常高,比js强太多了。java的强类型特性让网络应用的开发调试也非 常简单。这样浏览器本身和web程序用同一种语言,这也是一种美:)(程序员是不是天生就有洁癖:)。
目前在考虑多媒体集成这块,基本思想是用本地组件,flash用flashplayer,其他多媒体文件用本地播放器,这些本地组件只能加在awt组件 上,而jbrowser使用的是swing,重量组件和轻量组件的混合问题经初步试验,是可以解决的。只要打开的多个网页之间没有相互覆盖就应该没问题。
之所以到现在才写这个blog,是觉得现在绘制和布局应该可以拿出来show了:)
做了个临时网站,有兴趣的有兴趣的可以去看看: http://sunnyawake.cnoas.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值