2004年12月30日

为什么我的脚本大多是支持IE环境

    在我的脚本中基本都是支持IE环境,特别是很多脚本用了IE的MSXML来解析xml文件,直接排出了其它浏览器的兼容性。而且像xmlmenu1.61,在IE5.5中才能有比较好的展现(IE5不支持阴影效果,所以不能怪我)。 

    首先这些脚本基本都是为了开发一些B/S结构的应用系统而做,对于做网站很少使用这些脚本。那么在做B/S系统时,你们考虑什么浏览器,你们的客户群是什么?难道你们推荐用户统一使用Firefox或者Netscape?无疑,现在推荐给用户的都是统一的应用环境IE6。 

     在我们做B/S系统的时候,才发现对JavaScript的应用真是千奇百怪,绝对超过了一般网站,为了增加客户体验,我们不得不写大量的JavaScript脚本与DHTML进行互操作。这也就有了像Bindows这样的大师级产品出现。但是你想过没有,你要的这些效果(或者说客户要的这些效果)在有些浏览器上是根本不支持的。比如xmlmenu中菜单的阴影,这个在IE5上不支持,如果客户要求这个阴影,那么只能要求用户升级到IE5.5以上版本。现在的Firefox对IE的兼容性很好,确实比Netscape好很多,甚至连htc都支持了。但是考虑一下,还是有一些东西只能IE才能做到。有些事情毕竟那么无奈。 

     另外就是测试,如果你要多个浏览器都要测试,那么估计你会累死,如果一个浏览器出了问题,那么你要花费大量的时间。这些都是不经济的。

     所以在做任何一个方案的时候,都要考虑其应用场景。我看了博客园关于设计模式的讨论,首先确定一点,不要为了模式而模式。同样的,不要为了兼容浏览器而兼容浏览器。必须是有这种需求而且如果我们不满足这种需求就会带来我们不希望得利益损失的时候才去做。 

    我的网站海洋工作室( http://sps.oceanstudio.net )是基于Sharepoint,这个东东支持多浏览器还不错。在Firefox下显示也没有问题,但是web管理的时候在firefox下还是有问题。那么从11月2日建站到昨天11月29日,网站使用率是什么样子的呢?我给大家一组数据看看:
browser Total Visits Recent Month Most Recent Day Most Recent Day Visits
Gecko 67 67 2004-12-29 1
Internet Explorer 1 1 2004-12-21 1
Internet Explorer 5.0 15 15 2004-12-27 2
Internet Explorer 5.00 46 46 2004-12-29 2
Internet Explorer 5.01 80 80 2004-12-27 1
Internet Explorer 5.5 14 14 2004-12-20 1
Internet Explorer 6.0 14225 14225 2004-12-29 403
Microsoft Office 5 5 2004-12-29 1
Microsoft Office
FrontPage 6.0
120 120 2004-12-29 8
Netscape Navigator 2 2 2 2004-12-10 2
Netscape Navigator 3 4 4 2004-12-20 1
Netscape Navigator 7.2 1 1 2004-12-27 1
Opera 7.23 1 1 2004-12-17 1
Other 1235 1235 2004-12-29 10

      大家可以忽略掉office和frontpage的访问,因为那都是我自己访问的。看下浏览器的比例,非IE浏览器加起来基本占了不到10%。而IE6则占有了90%还多。考虑一下访问我网站的基本都是技术人员,技术人员使用浏览器的比率也就这个样子,那么我们的客户,那些连鼠标都用不熟的人呢?你让他自己装个Firefox?是不是不太现实。 

      就像大家所说的,不要为了模式而模式。同样我所说,不要为了兼容浏览器而兼容浏览器。

posted @ 2004-12-30 15:12 ocean 阅读(1668) 评论(21) 编辑

如何学习,牛人是否真牛?

       有些朋友在看了xmlmenu1.61后,有很多反馈,很感谢大家,同时也有很多感触,有的朋友感觉xmlmenu做得很酷,而有的认为Bindows之类很厉害。
        Bindows确实不错,也不愧那帮人成天做web UI,确实做得很好,但是这些东西的原理并不难。无非就是层、定位、样式表加上拖动,比如拖动吧,实际上就是用onmousemove事件而已。只不过看你有心没心了,如果你有心来做这个东东,并且有大把的时间(js有时需要很多微调的工作),也并不是做不出Bindows来。
       只不过国外做web ui的一来积累丰富,二来想象力丰富,三来这个就是他们每天的兴趣和职业,所以把这些东西掺和起来,效果确实不一样。
       我说这些的意思是不要过分的把某些东西神化,经常在网上看到很多做出来漂亮效果后称为牛人,但是没有必要神化牛人,只要你肯下功夫,有时间钻研,那么不会比这些牛人做的差。国外的牛人也是一样。

       To:birdshome,我公布源代码,并且代码中也有注释,同时还有说明和大量的Sample,目的就是为了交流经验。

       而实际上从学习的角度上来说,我并不赞成看这么长的代码,包括像Bindows之类,太累。从我的网站上有popmenu2.1,那个东东封装的就很好,代码也很短,你可以很快学习到如何封装,而如果看Bindows估计你会摸不着头脑。就像我现在看三年前写的这个XMLMenu一样,有些地方我自己都有点忘记是怎么回事了。

       所以在我网站上大多都是简练的代码,比如table操作的HTC,就那么几个操作我却分成了3个htc,为什么呢?也是为了代码简练,你可以很容易的看明白,同时用起来也方便,可以搭配使用,不使用的就不用加载。

        一门学问,要先学浅,再学深,然后再学浅。就像读书一样,先要读薄书,然后要把书读厚,然后再读薄一个道理。
      所以大家看到一个东西做得酷,应该研究考虑一下他是怎么做得,如果我来做我会怎么做。当你研究下去,发现哈哈,xmlmenu也不过如此吗。
      而我现在提供的大段代码,比如xmlmenu,xmltree,包括我要马上发布的仿xp的用asp+xml+js做得文件管理器,都是我在上大学的时候做得。我工作后,实际上已经没有时间来做这种大块的产品性东西,因为你要考虑实际工作,而业余时间又不是那么充裕。对于像xmlmenu这种逆从构思到设计到编码到调试只用几天业余时间是做不出来的。我现在有些半成品,很多都是因为工作一忙没有时间管,时间长了也就没有兴趣再接着写下去了。
     几年下来,我发现我对javascript/vbscript/wsh/dhtml/xml/java/.net/sql server/oracle/my sql/这么多东西都比较熟练,都作过一些大型应用,但是如果往深里面挖掘,还差好多才能精通(js/vbs差不多精通了,主要是简单,几乎每一个函数的参数我都能背过了)。现在精力又转到SPS/Smart Client/Office二次开发上来,呵呵,真是忙得不亦乐乎,是不是有点迷失自我呢?学这么多东西当然主要是为了工作。

posted @ 2004-12-30 11:19 ocean 阅读(2332) 评论(13) 编辑

大力宣传经典之作,XMLMenu1.61,玩JS的不下载的绝对后悔。另外还有xmltree2.1

XMLMenu1.61效果演示
http://www.oceanstudio.net/oceanstudy/learn/js/xmlmenu1.61/default.htm
XMLTree2.1效果演示
http://www.oceanstudio.net/oceanstudy/learn/js/xmltree2.1/example.htm 
下载请到
http://sps.oceanstudio.net
压缩包内有源码和详细的例子。

XMLMenu1.61为一个JavaScript的菜单脚本,可以支持横式菜单、竖式菜单和右键菜单三种类型。数据源为XML文件或者XML数据岛。此XML文件可以通过asp/jsp等动态生成。可以说是一个结构非常非常优秀,而且支持的功能也非常多。也是在任何地方都从来没有公开过的源码。此源码虽然为3年前所做,但是拿到今天来看无疑也是非常优秀的。如果你致力于JS不下载此脚本,那实在是非常遗憾。
另外此脚本也采用商业授权,凡是商业用途授权需要支付授权费用50元。非商业用途可以自由使用,但是需要保留版权信息。
此脚本为3年前所做,所以也有一定的缺陷,最大的问题就是当时还是采用了层div来做菜单,所以容易被select挡住,如果采用object或者iframe会更好一些。因为代码公开,所以有意愿的朋友可以自行修改。如果你把它改进得更好,那么我也会在海洋工作室(http://sps.oceanstudio.net)发布您修改的新版本。
从XMLMenu1.0开始到XMLMenu1.61,我算下来已经有11个版本了。希望学习Js的朋友能够从中学习到如何封装的技巧。

另外还提供一个XMLTree2.1,当然这个tree实际上是我的学生模仿我的xmlmenu来做的,在2.1版本的时候我把这个树重新写了一遍。应该说还是达到了比较容易使用的地步。

另外偶也是开发者俱乐部Script版的版主ocean2001,致力于.NET、JavaSciprt、Sharepoint.希望大家多多交流。

posted @ 2004-12-30 08:43 ocean 阅读(1544) 评论(9) 编辑