<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Sean220</title>
    <description></description>
    <link>http://sean220.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>基于Desktop风格设计的应用框架探索</title>
        <author>Sean220</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sean220.javaeye.com">Sean220</a>&nbsp;
          链接：<a href="http://sean220.javaeye.com/blog/140757" style="color:red;">http://sean220.javaeye.com/blog/140757</a>&nbsp;
          发表时间: 2007年11月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          看到EXT版里许多基于desktop demo改写的应用界面，包括差沙老兄的那个DEMO，结合自己目前完成的工作做个简单的分享：<br /><br />（1）为了追求desktop应用OAOP的实质，不采用iframe等方法来取巧，否则只是学了一个界面而已<br /><br />（2）desktop应该有一个基础框架来为后续开发提供支持，包括调试、任务管理、接口模型等多个方面<br /><br />（3）组件化，动态加载（根据实际需要异步或同步），desktop里的每样东西，包括开始菜单、任务栏、桌面图标、类加载提示窗口等内容都进行插件化管理。<br /><br />（4）垃圾收集问题。既然作为OAOP应用，使用过程中动态加载的的模块的各种ui组件，必须保证在模块destory时从dom树上删除，这点在做的时候调试非常辛苦，举个例子：比如window组件只要close，就会自动从dom树上remove,而Menu则不会，如果带contextmenu的模块destory时候未手动将自身相关的menu清除，那么即使重复打开同一模块，未释放的menu element也会造成内存泄漏。（好在有firebug可以动态监视dom树变化）<br /><br />由于没有外网服务器，加上目前完成度不高，只能用图片看看，以后差不多在拿出来共享吧。<br /><br /><br />截图已实现部分功能说明：<br /><br />（1）可以从开始菜单、桌面图标加载模块（可拖放），桌面右键菜单（保存当前设置、排列图标等），快捷方式支持自定义的右键菜单，模块可根据自身需要在自身快捷方式右键菜单里加新的项（默认为打开、在新窗口打开（脱离desktop窗口，以浏览器新页面模块窗口全屏打开，即为传统方式）、删除快捷、重命名、属性）<br /><br />（2）调试窗口实现类似log4j方式的消息监视，可避免到处alert(),将来可以扩展两个方面，一个方面可将本地调试日志发往服务器保存，二可以服务器日志在本地显示，调试窗口消息上点右键可打开详细内容或打开对象浏览窗口<br /><br />（3）实现任务管理器机制，模块可动态加载，删除实例（包括script一起delete掉），这样在调试模块的时候不用刷新页面，只需要删除实例，再加载，即可将新的js代码重新加载并初始化实例。（？类似热部署^_^）。对具有autoRun属性的模块进行启动加载<br /><br />（4）桌面图标、加载进度口等desktop本身组件也是模块，可运行过程中加载或卸载。
          <br/>
          <span style="color:red;">
            <a href="http://sean220.javaeye.com/blog/140757#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/115' target='_blank'><span style="color:red;font-weight:bold;">JavaEye图灵杯第2届问答大赛开始了！8月4日至8月17日，奖品丰厚！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 15 Nov 2007 01:01:37 +0800</pubDate>
        <link>http://sean220.javaeye.com/blog/140757</link>
        <guid>http://sean220.javaeye.com/blog/140757</guid>
      </item>
  </channel>
</rss>