本周原计划要更新很多内容的,可是因为有多个网友提到现在的甘特图性能很差,因此,经过讨论,我们决定提前进行性能优化,性能优化到最重要的一环"按需创建"的时候,我们发现实现的逻辑比我们想像的要复杂,因此,需要更多时间进行开发已保证和原有的所有功能兼容,因此这一块的更新就没有上线.
    不过请大家放心,这个问题仅仅是时间的问题,在向日葵甘特SFGantt目前这个阶段,我们更注重用户的体验而不是开发时间.目前根据我们还在开发之中的版本来看,我们对SFGantt的性能十分乐观,目前已经将SFGantt打开一份测试所用的XML文件的时间从6.7秒减少到了0.7秒,而且性能还存在提升的可能,预计优化后的版本本周可以发布.
    下面是已经发布过的更新(细小的BUG修正不在此列):
    1.优化了图片和背景图的加载模式,确保相同的多个Img文件不会被下载多次.有一个用户发现甘特图加载过程之中浏览器的状态栏显示的"正在加载"列表竟然有500个之多,担心这个会引起加载速度的问题,对此,我们也有同样的担心,因此,我们采用了一种类似于图片预载的技术,保证同样的图片在SFGantt加载时只下载一次,至于这个功能是否引起了性能提升,我们没有明显的感觉.
    2.增加了对Project数据文件扩展字段的支持.因为我们的数据文件是已Project的XML文件作为基础的,有些用户打算在次基础上开发Project相关应用,在评估的时候提到了扩展字段的问题.因此我们在数据之中加入了对扩展字段的读取,并在甘特图的接口之中提供调用的方法,具体请看范例:使用Project的任务扩展域属性,对Project的扩展属性不清除的可以去看看Project的相关文档.
    3.允许指定甘特图使用的图片文件的扩展名.大家知道,向日葵甘特(SFGantt)使用了很多零碎的小图片来组织出复杂的甘特图,以前仅仅允许指定图片文件夹的URL路径,现在允许指定文件的扩展名(默认为.gif),例如www.51diaodu.cn使用的版本就换成了",gif.aspx",至于为什么要换成这样奇怪的扩展名,后面会提到.
    4.给www.51diaodu.cn上面的SFGantt图加上缓存和GZip的支持.这是甘特图性能优化的一部分,主要是下载速度的优化,现在对甘特图所使用到的JS库文件、XML数据文件、图片文件采用了如下的逻辑:
        a.一个文件一天之内仅仅下载一次,之后24小时之内,使用本地缓存,如果浏览器向服务器提交请求,则服务器直接返回304(无更改);
        b.对文本格式的JS和XML文件进行GZip压缩后传送,例如原来80K的JS库文件压缩之后仅仅为20K,加快下载速度;
        c.对需要进行Gzip压缩传送的文件在服务器上使用GZip服务端缓存;
    使用这些技术之后,页面的加载速度有了大幅的提升,对于这个技术,还有如下说明:
        a.本缓存技术由www.step1.cn提供的Step1.UrlRewriter库(ASP.NET 2.0)完成。
        b.因为本站采用的万网虚拟主机不提供自定义404页面处理文件,更不能自定义某一类型的文件的处理引擎,因此,本站只好在.js,.xml,.gif等需要使用此逻辑的文件在引用的时候加上.aspx的扩展名,以由aspx来处理,纳入缓存机制。
    5.优化了任务的focus和blur的机制,现在可以允许用户点击ID列选中整行,并可以在图表上的甘特条上点击的时候自动选中该列表。

    以上更新欢迎您到向日葵甘特SFGantt官方站点体验!
posted on 2008-06-23 09:51  运筹帷幄  阅读(674)  评论(0编辑  收藏  举报