原创 AJAX 即时通讯软件收藏

新一篇: Edison观点 之 部分书评 | 旧一篇: 软件架构概述

目前我已经修改了部分bug. onlyxp IM 已经可以正常使用了.
下一阶段目标是自己开发一个小型的javascript 客户端widget GUI library,最主要的类便是window,
主要有基本的放大,缩小,关闭,拖拽等事件.
为什么不用现成的库呢?
DWR针对于java;
Atlas特定于.NET,且包装了javascript,抽象层提高,但性能低下.
backbase为商业性质的,且同atlas一样有自己的基于javascript的XUL语言.
Laszlo是个不错的RIA,如今能生成Flash,不久将来决定支持生成DHTML,相比它的功能,它的性能我还能忍受,但是即使它支持生成DHTML,我也未必会使用那套,因为自动生成的代码通常不容易维护, 我还得隔掉一层去写lzx,再转换成DHTML  + javascript + CSS,不爽. 至于flash版本的,日后我或许会考虑.

如果使用第三方库,必定会引入一些我不想加入的额外东西,再者,我不想性能过于低下,所以 我决定重新造车轮子.

如果我完全使用widget的话,之后可能需要有个javascript版本的xml解析库, 即所谓把显示的运算交给客户端,
我坚决反对使用iframe(除了少数情况),因为如果使用iframe,它是个矩形外观,如果我以后想搞个不规则形状外观就郁闷了,还有,就是很多人看iframe也不爽,微软的web developer里面一用iframe就有警告.

第二个方法就是像服务器端发请求,让服务器生成并排列好内容再发给客户端,客户端只管填充innterHTML就行了.但这个方法如果是SOA架构还爽点,不过不爽的是客户端调用Web service同样耗费运算.但是如果访问特定元素,如:Java下的servlet,ASP.NET下的HttpHandler, PHP page, ROR page, CGI等,又与特定WEB技术耦合了.
不过,这两个方案还是不错的.毕竟很多东西是要有取舍的.

今天我想了个好法 ---动态植入javascript脚本
通常我们的AJAX程序都是预先载入所有或大部分javascrpit代码库到客户端,不管有用没用.
运用lazy load原理,我的方法是在触发事件或调用函数时,在某函数内部先发送服务器请求获得脚本引用或脚本片段代码,动态植入当前页面,然后再调用植入的代码.(补充,动态代码片段有服务器端程序如servlet返回),样例如下:
function notifyClicked()
{
    //这里得是同步的
    var isLoaded = getMessage;
    if(!isLoaded)
    {
        loadScript("messagePart");
        // importScript("chat.js")为动态导入外部javascript文件;
  // loadScript("chat.js")为把外部脚本文件内容动态装入当前页面
    }

 getMessage();  //此方法为address.js中的
}

发表于 @ 2006年05月17日 03:35:00|评论(loading...)|编辑

新一篇: Edison观点 之 部分书评 | 旧一篇: 软件架构概述

评论

#i_like_cpp 发表于2008-06-13 08:06:07  IP: 116.24.242.*
哇,,IM居然也WEB了。。
世界都在变了!!
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © EdisonXP