﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Vincent Thinking-随笔分类-Work</title><link>http://www.blogjava.net/znjqolf/category/5183.html</link><description>All about Vincent's work and life</description><language>zh-cn</language><lastBuildDate>Fri, 02 Oct 2009 14:25:34 GMT</lastBuildDate><pubDate>Fri, 02 Oct 2009 14:25:34 GMT</pubDate><ttl>60</ttl><item><title>web 甘特图 gantt</title><link>http://www.blogjava.net/znjqolf/archive/2009/09/24/296311.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Thu, 24 Sep 2009 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2009/09/24/296311.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/296311.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2009/09/24/296311.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/296311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/296311.html</trackback:ping><description><![CDATA[纯AS3手工打造.开发预览版.<object id="Gantt" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="100%" width="100%" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://www.blogjava.net/Files/znjqolf/Gantt.zip" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="allowScriptAccess" value="sameDomain"/ /><embed src="http://www.blogjava.net/Files/znjqolf/Gantt.zip" quality="high" bgcolor="#ffffff" width="100%" height="100%" name="Gantt" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>
<img src ="http://www.blogjava.net/znjqolf/aggbug/296311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2009-09-24 16:52 <a href="http://www.blogjava.net/znjqolf/archive/2009/09/24/296311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近在忙乎的东西</title><link>http://www.blogjava.net/znjqolf/archive/2006/08/12/63214.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Sat, 12 Aug 2006 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/08/12/63214.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/63214.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/08/12/63214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/63214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/63214.html</trackback:ping><description><![CDATA[
		<p>很久没更新，最近一直在研究的东西<br />MSNP12,  LUCENE, IBATIS</p>
<img src ="http://www.blogjava.net/znjqolf/aggbug/63214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-08-12 15:10 <a href="http://www.blogjava.net/znjqolf/archive/2006/08/12/63214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>唉,现在的人啊</title><link>http://www.blogjava.net/znjqolf/archive/2006/05/31/49366.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Wed, 31 May 2006 15:17:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/05/31/49366.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/49366.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/05/31/49366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/49366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/49366.html</trackback:ping><description><![CDATA["易用性等方面确实还有一定的差距，java的版本取胜都是在其企业级定位上"<br />这点我非常的赞同. <br />企业级的定位使它的功能强大了, <br />同时易用性就相对削弱了一些. "<br /><br /><br />看到这些话就忍不住想骂人?  什么是企业级应用?  企业级应用是易用性差的借口么? 难道就只有java能做企业级应用,php,asp就只能做做网站? taobao,ebay不算企业级应用么????..... ...<img src ="http://www.blogjava.net/znjqolf/aggbug/49366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-05-31 23:17 <a href="http://www.blogjava.net/znjqolf/archive/2006/05/31/49366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于firefox有趣的东西</title><link>http://www.blogjava.net/znjqolf/archive/2006/04/20/42231.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Thu, 20 Apr 2006 13:46:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/04/20/42231.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/42231.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/04/20/42231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/42231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/42231.html</trackback:ping><description><![CDATA[打开你的firefox, 输入:<br /><br /><li>about: 
</li><li>about:config 
</li><li>about:credits 
</li><li>about:buildconfig 
</li><li>about:cache 
</li><li>about:plugins 
</li><li>about:mozilla 
<p>以前还真没有注意到.:)</p></li><img src ="http://www.blogjava.net/znjqolf/aggbug/42231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-04-20 21:46 <a href="http://www.blogjava.net/znjqolf/archive/2006/04/20/42231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>该死,sf又上不去了</title><link>http://www.blogjava.net/znjqolf/archive/2006/02/20/31590.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Mon, 20 Feb 2006 01:45:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/02/20/31590.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/31590.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/02/20/31590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/31590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/31590.html</trackback:ping><description><![CDATA[faint...<img src ="http://www.blogjava.net/znjqolf/aggbug/31590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-02-20 09:45 <a href="http://www.blogjava.net/znjqolf/archive/2006/02/20/31590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件？服务？</title><link>http://www.blogjava.net/znjqolf/archive/2006/02/15/30756.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Wed, 15 Feb 2006 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/02/15/30756.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/30756.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/02/15/30756.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/30756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/30756.html</trackback:ping><description><![CDATA[昨天研发中心项目组一起聚餐，聊起了软件的发展问题。<BR><BR>对于一个软件公司，究竟是买软件还是买服务？ 买软件做项目，必然要设计到软件的开发定制，前期的投入是不可避免的，后期的维护成本也是很高的，客户的需求是无止境的，往往上千万的项目做下来却是亏本的。 从另外一个角度来看，软件究竟是什么？ 在我看来，软件就是一种特殊的服务，这里的服务不是指人的因素，而是机器，是软件，用我们老大的话来讲，用人去做服务一定是亏本的。<BR><BR>心里也一直有一种设想，或许以后不再依靠出售软件，做项目来生存，而是出售服务，尤其是基于bs结构的服务。想想google的email，BSP，RSS reader等等，或许很快在线的erp,在线的crm, oa,cms等等就会变成现实，当然这里很重要的一点就是要做到行业的标准，需要客户来认同你，信任你。<BR><BR>这里的情景很像现在的网游，我提供服务，你提供数据，数据集中存放，我提供个性化的定制，提供相关联的信息（类似gmail中的广告）,针对特殊用户做增值服务。<BR><BR>看看37signal，一个人被很多人认为是一个很伟大的企业。我们好好思考一下，是不是应该做点什么？<img src ="http://www.blogjava.net/znjqolf/aggbug/30756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-02-15 10:22 <a href="http://www.blogjava.net/znjqolf/archive/2006/02/15/30756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Echo2的EchoStudio</title><link>http://www.blogjava.net/znjqolf/archive/2006/02/10/30132.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Fri, 10 Feb 2006 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/02/10/30132.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/30132.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/02/10/30132.html#Feedback</comments><slash:comments>50</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/30132.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/30132.html</trackback:ping><description><![CDATA[图形化的组件，让人感觉又回到了vb时代，虽然不是很认同Echo2的机制，但是看到能以这样的方式来做WEB，赞一个。^_^ <BR><BR>图形组件库，事件驱动机制，完全OO的UI的开发模式，再加上强大的EchoStudio，感觉一切都完美了很多。 <BR><BR>EchoStudio由于是商业软件，有一定的试用期，最不爽的就是把以前的css完全用stylesheet来替代，可是竟然没有看到相关的schema。只能用EchoStudio来做stylesheet，这不是逼着你买么？ 没办法，只能crack了，反编译了一下，暗自庆幸。嘿嘿，代码竟然没有混淆,很容易找到了验证代码。哈哈javassist2分钟搞定。不过作为一个软件开发人员，还是小小的BS一下自己.....<img src ="http://www.blogjava.net/znjqolf/aggbug/30132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-02-10 14:31 <a href="http://www.blogjava.net/znjqolf/archive/2006/02/10/30132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AHAH 介绍</title><link>http://www.blogjava.net/znjqolf/archive/2006/01/09/27212.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Mon, 09 Jan 2006 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/01/09/27212.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/27212.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/01/09/27212.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/27212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/27212.html</trackback:ping><description><![CDATA[<P>什么是AHAH?<BR>AHAH:(Asychronous HTML and HTTP)<BR>简单来说，AHAH是一种利用JavaScript动态更新web页面的技术.他通过XMLHTTPRequest来获得动态的html，填充到 web页面中。</P>
<P>和AJAX的关系?<BR>AHAH被认为是一种比AJAX(Asynchronous JavaScript and XML)更简单的web开发方式,严格意义上来说AHAH是AJAX的一个子集,因为(X)HTML本身及时一个特殊形式的XML，但是最为子集的AHAH却有特殊的和有用的特性:<BR>1.无需定义XML schemas可以使设计时间大幅减少</P>
<P>2.使用已有的HTML页面从而避免必须提供特殊的Web服务</P>
<P>3.所有的数据通过浏览器可识别的HTML传输，从而可以很容易的调试和测试</P>
<P>4.HTML直接包含在页面的DOM对象中，无需解析</P>
<P>5.HTML设计者可以使用CSS来格式化显示，无需程序员使用XSLT转换</P>
<P>6.所有的处理都在服务器端完成，客户端不需要编写任何程序</P>
<P>实事上，任何内容的最终都是要转化成浏览器可识别结果，展现在浏览器上。很难想象出转化成自定义的XML格式比HTML有什么优点<BR><BR>参考<A href="http://www.opendarwin.org/~drernie/src/ahah.js">ahah.js</A>&nbsp;和&nbsp;<A href="http://homepage.mac.com/kevinmarks/jah.js">jah.js</A><BR><BR><STRONG>Send AHAH Request </STRONG><BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN>&nbsp;<SPAN style="COLOR: #0000ff">function</SPAN><SPAN style="COLOR: #000000">&nbsp;ahah(url,target)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;native&nbsp;XMLHttpRequest&nbsp;object</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN>&nbsp;<SPAN style="COLOR: #008000"></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;document.getElementById(target).innerHTML&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;'sending<IMG src="http://www.blogjava.net/images/dot.gif">';<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(window.XMLHttpRequest)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;XMLHttpRequest();<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.onreadystatechange&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">function</SPAN><SPAN style="COLOR: #000000">()&nbsp;{ahahDone(target);};<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.open(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">GET</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;url,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.send(</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;IE/Windows&nbsp;ActiveX&nbsp;version</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">10</SPAN>&nbsp;<SPAN style="COLOR: #008000"></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(window.ActiveXObject)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ActiveXObject(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Microsoft.XMLHTTP</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(req)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.onreadystatechange&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">function</SPAN><SPAN style="COLOR: #000000">()&nbsp;{ahahDone(target);};<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.open(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">GET</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;url,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.send();<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN>&nbsp;<SPAN style="COLOR: #000000">}&nbsp;</SPAN></DIV><BR><STRONG>Receive AHAH Request </STRONG><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN>&nbsp;<SPAN style="COLOR: #0000ff">function</SPAN><SPAN style="COLOR: #000000">&nbsp;ahahDone(target)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;only&nbsp;if&nbsp;req&nbsp;is&nbsp;"loaded"</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN>&nbsp;<SPAN style="COLOR: #008000"></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(req.readyState&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;only&nbsp;if&nbsp;"OK"</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN>&nbsp;<SPAN style="COLOR: #008000"></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(req.status&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">200</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">||</SPAN><SPAN style="COLOR: #000000">&nbsp;req.status&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">304</SPAN><SPAN style="COLOR: #000000">)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;req.responseText;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(target).innerHTML&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;results;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(target).innerHTML</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">ahah&nbsp;error:\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">10</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.statusText;<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN>&nbsp;<SPAN style="COLOR: #000000">}</SPAN></DIV><STRONG><BR>Executing Javascript</STRONG> <BR>
<P>由于浏览器在插入HTML的时候并不会执行&lt;script&gt;标签中的代码,所以你可以利用下面的方法来解决 document.getElementById(target): <BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN>&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;bSaf&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(navigator.userAgent.indexOf('Safari')&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;bOpera&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(navigator.userAgent.indexOf('Opera')&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;bMoz&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(navigator.appName&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;'Netscape');<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #0000ff">function</SPAN><SPAN style="COLOR: #000000">&nbsp;execJS(node)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;st&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;node.getElementsByTagName('SCRIPT');<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;strExec;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">var</SPAN><SPAN style="COLOR: #000000">&nbsp;i</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;i</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">st.length;&nbsp;i</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(bSaf)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExec&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;st[i].innerHTML;<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(bOpera)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExec&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;st[i].text;<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(bMoz)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExec&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;st[i].textContent;<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExec&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;st[i].text;<BR></SPAN><SPAN style="COLOR: #008080">19</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">20</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(strExec);<BR></SPAN><SPAN style="COLOR: #008080">22</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(e)&nbsp;{<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(e);<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">25</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;}<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN>&nbsp;<SPAN style="COLOR: #000000">}<BR></SPAN><SPAN style="COLOR: #008080">27</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN></DIV><BR>注意:<BR>1.由于IE返回的tag标志都是大写,所以你必须搜索SCRIPT而不是script.在firefox中也保留大写的形式.<BR>2.不要用//的注释方式,用/**/的方式来代替,在每一个声明句后面加';'<BR><BR>(未完..)<img src ="http://www.blogjava.net/znjqolf/aggbug/27212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-01-09 09:31 <a href="http://www.blogjava.net/znjqolf/archive/2006/01/09/27212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BEA User Group归来</title><link>http://www.blogjava.net/znjqolf/archive/2006/01/08/27123.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Sun, 08 Jan 2006 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2006/01/08/27123.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/27123.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2006/01/08/27123.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/27123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/27123.html</trackback:ping><description><![CDATA[昨天和一个朋友去参加了上海BEA User Group.这次活动的Topic主要有Dlee的Ajax in action , Moxie 的软件的良性文化 ,Bea 顾问的 SOA相关介绍 还有最后的重头戏 Robbin的领域模型。

Yanger的主持还是比较精彩的，BEA的组织也比较到位，活动中还穿插了魔术表演。整天的氛围还是不错的，各位的演讲也是很精彩的，但是由于活动时间过长了，感觉最后Robbin的讲演还是有些没有尽兴。

每个Topic都是可以深入讲下去的，但是一个下午的时间要讲4个Topic，时间太仓促了，每个Topic也只是泛泛的介绍了一下概念，感觉还不如去看JavaEye的帖子。有些失望。

应该采用BUJG的方式，一次关注一个Topic，深入的讲下去，不过想想这也算是BEA的商业活动，要达到一定的商业目的。：）

讨论技术看来还是自发的组织比较好。<img src ="http://www.blogjava.net/znjqolf/aggbug/27123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2006-01-08 11:14 <a href="http://www.blogjava.net/znjqolf/archive/2006/01/08/27123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用3维坐标来看权限部分</title><link>http://www.blogjava.net/znjqolf/archive/2005/12/21/24932.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Wed, 21 Dec 2005 04:39:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2005/12/21/24932.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/24932.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2005/12/21/24932.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/24932.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/24932.html</trackback:ping><description><![CDATA[对于每个系统来说，权限都是一个很重要的组成部分，贯穿于整个系统功能，甚至包括数据。RBAC是一个很好的模型，对于复杂的处理更多的还是和业务紧密联系在一起，所以对于组件形式的RBAC产品还很难做到的。

对一个用户来说，权限主要包括2个部分，data和action，其组合形式对我们来说就是一个view，每个权限对应一个相应的view。在这里我用三维的坐标来思考，data和action是相应的x,y轴，不同的data,action组成一个业务视图，从三维的角度来看是一个2维的的平面，我们的系统功能也就是由不同的平面来做成的。

权限可以看作z轴，view在不同的权限上会有不同的表现形式，展现不同的数据，不同的操作。这样权限，数据，操作看起来就会清晰很多。

我所设想的应该是这样的一种方式：view由不同的view component和action component组成，这里view只是一个模板，没有任何业务数据。

提供一个类似PrivilegeViewFactory的类，传入view模板，和相应的角色（用户，组。。），生成相应的PrivilegeView，然后由业务逻辑去填充数据，这样可以容易做到权限和view的分离，层次也比较清晰。

每个view component要实现相应的权限接口，要根据不同的角色生成不同的view component。比如DataGrid，不同的角色看的列是不同的，甚至数据内容也是不同的，更细粒度的看，业务不同字段的的数据也是不同。这部分是和ui绑定的，也是最复杂，工作量最大的部分。
<img src ="http://www.blogjava.net/znjqolf/aggbug/24932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2005-12-21 12:39 <a href="http://www.blogjava.net/znjqolf/archive/2005/12/21/24932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax桌面系统</title><link>http://www.blogjava.net/znjqolf/archive/2005/12/19/24613.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Mon, 19 Dec 2005 04:28:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2005/12/19/24613.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/24613.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2005/12/19/24613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/24613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/24613.html</trackback:ping><description><![CDATA[和我当初的设想的一样，ajax桌面开始爆发了。当初看到netvibes的时候还是测试版本，现在功能已经很强大了。<BR><BR>类似的平台已经有一下9个: <BR>1. <A href="http://www.eskobo.com/">Eskobo</A><BR>2. <A href="http://www.favoor.com/">Favoor</A> <BR>3. <A href="http://www.google.com/ig">Google</A> <BR>4. <A href="http://www.goowy.com/">Goowy</A>(基于flash, 非Ajax) <BR>5. <A href="http://www.live.com/">Microsoft Live </A><BR>6. <A href="http://www.netvibes.com/">Netvibes</A> <BR>7. <A href="http://www.pageflakes.com/">Pageflakes</A> <BR>8. <A href="http://www.protopage.com/">Protopage</A> <BR>9. <A href="http://www.zoozio.com/">Zoozio</A><BR>基于ajax的rich application必然是个大的趋势，而web os是这里面很重要的部分，是rich application的all in one。我不敢说这就是web 3.0，当人们对2.0还很模糊的时候更不应该做这样的揣测。不过有一天，真有可能会像《24小时》所描绘的那样。这也验证了sun的一句经典的话:"网络就是计算机". 顺便BS一下 "<A href="http://www.potu.com/my/">我的博通</A>", 简直就是netvibes的翻版。拜托，抄也抄的有点道德。<img src ="http://www.blogjava.net/znjqolf/aggbug/24613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2005-12-19 12:28 <a href="http://www.blogjava.net/znjqolf/archive/2005/12/19/24613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>试着以后用DOCBOOK写文档</title><link>http://www.blogjava.net/znjqolf/archive/2005/11/29/21876.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Tue, 29 Nov 2005 14:54:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2005/11/29/21876.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/21876.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2005/11/29/21876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/21876.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/21876.html</trackback:ping><description><![CDATA[以前一直没用过docbook，数据和显示分离的好处是显而易见的。这个有点类似MVC.^_^

很多开源的文档都是用docbook来处理的，数据和显示分离，未来的趋势，再也不用在word中搞排版了，就好像html中的div+css,爽啊。
<br>
<br>
<br>
一些关于docbook的文档:<br>
<a href="http://xml.web.cern.ch/XML/goossens/dbatcern/index.html">Writing Documentation Using DocBook</a><br>
<a href="http://wiki.docbook.org/topic/DocBookAuthoringTools">DocBookAuthoringTools</a><br>
<a href="http://pyrecord.freezope.org/docbook/index.html">DocBook学习</a><br><img src ="http://www.blogjava.net/znjqolf/aggbug/21876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2005-11-29 22:54 <a href="http://www.blogjava.net/znjqolf/archive/2005/11/29/21876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于layerX,layerY</title><link>http://www.blogjava.net/znjqolf/archive/2005/11/25/21436.html</link><dc:creator>Vincent Thinking</dc:creator><author>Vincent Thinking</author><pubDate>Fri, 25 Nov 2005 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/znjqolf/archive/2005/11/25/21436.html</guid><wfw:comment>http://www.blogjava.net/znjqolf/comments/21436.html</wfw:comment><comments>http://www.blogjava.net/znjqolf/archive/2005/11/25/21436.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/znjqolf/comments/commentRss/21436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/znjqolf/services/trackbacks/21436.html</trackback:ping><description><![CDATA[  当需要取到鼠标点击相对于层的位置信息时，在ie下可以用event.offsetX, evnet.offsetY，在Firefox下是event.layerX, event.layerY。但是firefox下总是有问题，取到的不是相对于层的坐标，而是pageX,pageY。 Google了半天也没有发现什么解决办法，最后在一个网站看到一个例子，原来在层中要设置position为absolute或者relative。 
  OK,问题解决，这点问题竟然让我花费了2个小时。 :(<img src ="http://www.blogjava.net/znjqolf/aggbug/21436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/znjqolf/" target="_blank">Vincent Thinking</a> 2005-11-25 16:24 <a href="http://www.blogjava.net/znjqolf/archive/2005/11/25/21436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>