zoukankan      html  css  js  c++  java
  • Mozilla研究—mozilla能为我们做什么

    Mozilla研究—mozilla能为我们做什么

     

    转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd

    作者联系方式:Li XianJing <xianjimli at hotmail dot com>

    更新时间:2007-2-28

     

    mozilla是一个以浏览器为中心的软件平台,它在我们平台中占有重要地位。我们用它来实现WEB浏览器、WAP浏览器、邮件系统、电子书和帮助阅读器等应用程序。为此,我最近花了不少时间去阅读mozilla的代码和文档,我将写一系列的BLOG作为笔记,供有需要的朋友参考。本文介绍一下mozilla能为我们做什么。

     

    Mozilla是一个庞大的系统,仅管在PC上来说,它对硬件的要求并不高,但对于手机平台而言,它占用的磁盘/内存空间,以及对CPU能力的要求就相当可观了。同时由于其复杂度太高,要灵活的运用它,将要花费不少的精力去研究它。很难说清这些开销是否值得,因为要视具体情况而定。不过,如果我们了解mozilla能为我们做些什么,对此看法可能会有些改变。

     

    1.         作为WEB浏览器。

    Mozilla本身就是以WEB浏览器为中心的,选择它作为WEB浏览器是很自然的事情了。Mozilla在浏览器方面的经验丰富,对标准兼容性非常好。它不但本身功能强大,支持CSSJavascript等高级特性,而且架构设计精良,可扩展性极强,以后增加对flash的支持,对PDF的支持,对mediaplayer的支持等等,都非常方便。像dillo (http://www.dillo.org/)viewML(http://www.pixil.org/products.php) 等浏览器,虽然体积更小巧,但无论是从功能、兼容性,还是扩展性来看,都与mozillo没得比了。

     

    2.         作为WAP浏览器。

    WAP浏览器是smartphone必备的应用程序,尽管WML最终是要被XHMTL取代的,但目前仍然普遍存在,所以还是要支持的。专门为WML开发一款浏览器,一方面是工作量太大,我们目前没有这么多人力去做。另外由于WML的表现力是HTML的子集,如果有了HTML浏览器还要去开发一个WML浏览器,其工作完全是重复的,没有必要。最理想的办法,就是先把WML网页转换成HTML网页,然后在HTML浏览器上浏览WML网页。以前在做WML模拟器时,我做过类似的工作,所以最初我就打算这样做了,最近又发现mozilla已经有一个WML browser的项目了,它思路和我们的想法如出一辙,这下为我们省了不少事儿。

     

    3.         利用其邮件编辑器。邮件编辑器也不是个小玩意儿,从头实现的工作量非常庞大,而且邮件在我们项目中也只是一个普通应用程序,我们不太可能为此花费太多精力。我们知道Mozilla有一个邮件客户端应用(Thunderbird),不过我们不打算移植Thunderbird,原因是:一方面它不适合在手机上使用,另外也不便于集成到我们的系统中来(它会破坏我们系统风格的一致性)。所以我们只是重用mozilla的编辑器和相关网络协议,这仍然为我们带来了很大的便利。mozilla的编辑器的可以编辑四种类型的文件:texttextmailhtmlhtmlmail,对我们来说已经足够了。

     

    4.         实现电子书阅读器。

    Mozilla提供了一种输入流转换的功能,只要文件能用HTML表现出来的,都可以转换成HTML格式,然后用mozilla来浏览。像text文件、rtf文件、chmhtml,甚至wordpdf都可以用mozilla来浏览。利用mozilla的浏览器控件,我们可以方便的实现自己的电子书阅读器,对于不同的文件格式,只要写一个转换器就行了。

     

    5.         实现功能强大的记事本。

    利用MozillaHTML编辑器,我们可以实现功能强大的记事本,它可以插入图片、音频和视频文件。通过其插件系统,我们还可以实现现场图片编辑,录制音频和视频文件。其功能强大,甚至可以与ms word相媲美。

     

    6.         实现帮助系统。Mozilla的帮助系统是作为一个扩展实现的,其功能强大,而代码规模小得令人惊讶。如果有必要,完全可以利用它实现自己的帮助系统。

     

    当然,要充分利用mozilla的潜力,也不是那么简单的事,要花大量时间和精力去研究它才行。我会在后续的BLOG中介绍如何实现上述功能,请有兴趣的朋友关注。

     

    ~~end~~

     

     
  • 相关阅读:
    面向对象的链式调用
    浅显易懂的理解JavaScript中的this关键字
    js 页面刷新location.reload和location.replace的区别小结
    JavaScript中两种类型的全局对象/函数
    event.srcElement ,event.fromElement,event.toElement
    json jsonp的区别
    createElement与createDocumentFragment的点点区别
    解决Ajax不能跨域的方法
    mysqli_fetch_assoc php的新的库函数
    500 501 502 503 504 505 服务器错误
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167753.html
Copyright © 2011-2022 走看看