﻿<?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-J++ = Java + ?-随笔分类-javascript</title><link>http://www.blogjava.net/killvin/category/8030.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:30:43 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:30:43 GMT</pubDate><ttl>60</ttl><item><title>网页制作如何解决Div被Select挡住的问题</title><link>http://www.blogjava.net/killvin/archive/2006/11/23/83143.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Thu, 23 Nov 2006 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/11/23/83143.html</guid><description><![CDATA[http://www.firstui.com/read.php/250.htm
<img src ="http://www.blogjava.net/killvin/aggbug/83143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-11-23 23:47 <a href="http://www.blogjava.net/killvin/archive/2006/11/23/83143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jsparse</title><link>http://www.blogjava.net/killvin/archive/2006/09/13/69501.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Wed, 13 Sep 2006 15:23:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/09/13/69501.html</guid><description><![CDATA[
		<p>
				<font face="Courier New" size="2">Jsparse is a parse to parse the schema file with javascript. <br />If you are interested in it, you can vist the url<br /></font>
				<font face="Courier New" size="2">http://code.google.com/p/jsparse/</font>
				<tt style="FONT-SIZE: 120%; MARGIN: 1em"> </tt>
		</p>get source with svn<br /><font face="Courier New" size="2">svn checkout http://jsparse.googlecode.com/svn/trunk/ jsparse</font><img src ="http://www.blogjava.net/killvin/aggbug/69501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-09-13 23:23 <a href="http://www.blogjava.net/killvin/archive/2006/09/13/69501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>发布WFC 0.1</title><link>http://www.blogjava.net/killvin/archive/2006/03/21/36664.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Tue, 21 Mar 2006 09:58:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/03/21/36664.html</guid><description><![CDATA[
		<p>wfc是构建在B/S结构上的流程定义工具 <br /></p>
		<p>具备以下的功能 <br />1&gt; 实现了B/S结构上的工作流定义工具（没有看到同类型的产品）。 <br />2&gt; 流程定义格式与具体的工作流格式相分离，并可以在此基础上实现其他的流程定义工具产品。 <br />3&gt; 采用了Buffalo（XML-RPC的javascript实现）实现与后端Servlet的绑定。 <br />4&gt; 可以对具体的节点进行属性的配置（配置后的数据会被绑定为java的List自动传递到后端）。 <br /></p>
		<p>目前还需要改进的 <br />1&gt; 修改目前工作流的图标（需要分支、状态、合并这样专业的图标） <br />2&gt; 解决浏览器的刷新问题。 <br />3&gt; 增加线段的表现形式选项 <br />4&gt; 增加曲线的表现形式，尤其是在多线段的情况下要自动调整为曲线的形式。 <br /><br /><br />目前的WFC已经被<font color="#000000">Michael Chen（buffalo的作者）收录在其网站上！地址如下<br /><a href="http://demo.amowa.net/wfc" target="_blank"><font color="#551a8b">http://demo.amowa.net/wfc</font></a><br /><br />对于buffalo的关注早在作者刚发布的时候就已经开始了，起初不太了解buffalo的作用，然而在具体的工作中寻找基于XML-RPC协议的产品时突然明白了它的价值，不过说简单一点buffalo是实现了基于javascript的对象的序列化以及反序列化工作。</font></p>
<img src ="http://www.blogjava.net/killvin/aggbug/36664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-03-21 17:58 <a href="http://www.blogjava.net/killvin/archive/2006/03/21/36664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript的调试</title><link>http://www.blogjava.net/killvin/archive/2006/03/02/33280.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Thu, 02 Mar 2006 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/03/02/33280.html</guid><description><![CDATA[<P>javascript的调试相当繁琐，alert不能有效地起到调试作用，原因在于：<BR>1,&nbsp;alert只能在开发期使用，不能在产品交付中继续alert&nbsp;debug&nbsp;info<BR>2,&nbsp;就算在开发期，频繁的alert会导致调试效率低下。<BR>一个简单的log就会有很大帮助。下面就是我在现实生活中使用的javascript&nbsp;log方法。<BR>把它包含在一个全局import的js里面，以后代码就可以采用log()的方式来进行了。<BR><BR>当然，若谁有时间改造为log4j那样的可以按照分类打开或关闭log,再分上info,error什么的log级别就更好了。不过下面的简单方法就够我用拉。<BR></P>
<P>common.js</P>
<P>function log(v)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp; var s = "&lt;li&gt;&lt;font color=blue&gt;"+new Date()+"&lt;/font&gt; "+v+"&lt;/li&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; logPanel_log.innerHTML+=s;<BR>}</P>
<P>window.onhelp = function() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp; logPanel.style.display=logPanel.style.display=='none'?"block":"none";<BR>&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>}</P>
<P>document.write(<BR>&nbsp;"&lt;div id=logPanel style='display:none;text-align:right'&gt;"+<BR>&nbsp;&nbsp;&nbsp; "&lt;button onclick=\"logPanel_log.innerHTML='';\"&gt;clear&lt;/button&gt;&amp;nbsp;"+<BR>&nbsp;&nbsp;&nbsp; "&lt;button onclick=\"logPanel_log.innerHTML+='&lt;hr&gt;';\"&gt;HR&lt;/button&gt;"+<BR>&nbsp;&nbsp;&nbsp; "&lt;div id='logPanel_log'&gt;&lt;/div&gt;&lt;/div&gt;");</P>
<P>它覆盖了默认的IE&nbsp;按F1键显示IE&nbsp;help的行为，现在按下F1就能够显示log信息了。<BR><BR>摘自 redsaga满江红 <A href="http://www.blogcn.com/User6/caoxg/blog/5705836.html">http://www.blogcn.com/User6/caoxg/blog/5705836.html</A></P><img src ="http://www.blogjava.net/killvin/aggbug/33280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-03-02 20:15 <a href="http://www.blogjava.net/killvin/archive/2006/03/02/33280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript說分明 </title><link>http://www.blogjava.net/killvin/archive/2006/03/02/33278.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Thu, 02 Mar 2006 12:09:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/03/02/33278.html</guid><description><![CDATA[<P>JavaScript說分明&nbsp; </P>
<P><A href="http://taiwan.cnet.com/enterprise/technology/0,2000062852,20103386,00.htm">http://taiwan.cnet.com/enterprise/technology/0,2000062852,20103386,00.htm</A><BR>朱仲傑撰　　2005/12/28</P>
<P>&nbsp;</P>
<P>最近因為AJAX受到Google等網路服務業者的愛用而聲名大噪。也讓這個其實存在很久的程式語言再度成為討論話題。 </P>
<P><BR>JavaScript可以說是全世界使用最普遍的一個語言。雖然就統計資料(註)上來看，用JavaScript為主的專案數量只排在第九名，但我相信就應用的層面來看，絕對遠超過Java與.Net。JavaScript也是最讓人混淆的一個語言，即便是專業的網頁工程師，也不見得每位都能正確的了解它。網頁工程師對它又愛又恨，使用者最能體驗到它所帶來的好處，但常常也是被它搞的昏頭轉向。到底它是個什麼樣神奇的語言呢？ </P>
<P>JavaScript的前世今生</P>
<P>提到JavaScript，大家第一個聯想到的就是Java，但一切的誤解也就從這開始。要說它跟Java完全沒關係嘛，也不盡然。JavaScript原來的名稱叫LiveScript，是Netscape(網景)為了它的LiveWare平台所發展出來的一套語言。後來之所以改名叫JavaScript，主要是因為當年Netscape與Sun合作，共同開發網頁上的腳本語言，而剛好Sun正在開發Java語言，初期而且也是以網頁上的應用Java Applet為主，所以LiveScript也就改名為JavaScript。第一個擁有執行JavaScript的瀏覽器Netscape 2.0，發表日期也跟Java一樣，同樣都是1995年，所以算起來今年也是JavaScript的十歲生日。</P>
<P>JavaScript的版本非常多種，最原始的是由Netscape一路發展過來的，後來NetScape把它交給ECMA製定為標準(ECMA-262)，而ECMA所製定出來的稱之為ECMAScript；最喜歡自己也搞一套的微軟，也有自訂的Jscript。理論上，有了標準大家就應該要遵守，不過到目前看來，實際上並非如此。各家瀏覽器相容的程度不一，造成現在混亂的局面，同一個網頁用不同的瀏覽器瀏覽有時結果不盡相同。</P>
<P>JavaScript沒有你想像中的簡單</P>
<P>JavaScript是屬於prototype-based的一種語言，而prototype-based又是物件導向程式設計語言(Object-Oriented Programming Language)的一個分枝，所以嚴格說起來，JavaScript也是一種物件導向程式設計語言。光看到「物件導向」這四個字，我想很多人頭皮都已經開始發麻了，不過JavaScript之所以不簡單並不是因為這一點，而是因為它的結構鬆散和型態鬆散(loose typing)所導致。</P>
<P>你若寫過Java程式的話或許就知道，Java程式必需要Java虛擬機器(JVM)上執行，在執行Java程式之前，它必需是被編譯過的；在編譯的過程中，Java會檢查許許多多的條件，例如最基本的語法、變數的宣告等等。</P>
<P>JavaScript一樣得依存在一個容器(Container)中才能執行，我們常見到的容器就是瀏覽器(Web Browser)，跟Java不同的是，JavaScript的程式不需要事先編譯，它是屬於直譯式的語言，你可以把它想像成看到一行程式碼就執行一行。因為少了編譯時期的檢查，JavaScript就比Java「自由」許多，你可以在網頁上隨意的位置上安插JavaScript程式、可以隨意的建立新的變數來使用；你不用分清楚什麼是數值，什麼是字串、什麼又是物件，通通可以加加(+)在一起，這就會造成相當不嚴謹的開發過程。</P>
<P>自由是必需要付出代價的，前面提到相容性的混亂，在這又有語法結構上的混亂，這下子可以說是亂上加亂了。網頁工程師之所以對JavaScript又愛又恨，愛是因為透過適當的JavaScript，可以在網頁上創造出許許多多特殊的效果，讓使用者在瀏覽這個網頁時，能有更多的互動。恨是因為市場上極少有以JavaScript為主的整合開發工具(IDE)，因為剛剛所說的混亂，造成JavaScript程式很難開發和除錯。</P>
<P>JavaScript之所以普及，是因為寫JavaScript程式的使用者，不見得是寫Java、C/C++、VB等受過基本程式設計訓練的程式設計師，往往網頁的美工人員才是使用JavaScript的大宗。他們不會也沒時間去學習完整的JavaScript，而是有需要時才在網頁上東加一些、西加一點，這些加上去的JavaScript可能是網頁編輯器所提供的元件、或是網路上分享出來的程式片段。JavaScript一點都不簡單，只是大家都很偷懶，用最簡單的方式來使用它罷了。</P>
<P>AJAX應用為JavaScript注入強心劑</P>
<P>JavaScript十年來沒有特別受歡迎，因為WWW盛行以來它和HTML一樣已變成網頁裡最基本的元素，直到AJAX的出現，讓JavaScript大大的受到眾人的注視。AJAX的全名是 Asynchronous JavaScript and XML，JavaScript就是其中之一的主角，AJAX並不是一項新的技術，而是將一些舊有的技術結合起來做一種巧妙的應用，賦予網頁的一股新動力。 </P>
<P>AJAX這個名詞最早是出現在Adaptive Path網站上，一篇由 Jesse James Garrett於2005年2月18號所寫的文章中所提出的(<A href="http://www.adaptivepath.com/publications/essays/archives/000385.php">http://www.adaptivepath.com/publications/essays/archives/000385.php</A>)。AJAX是客戶端(瀏覽器)的技術，簡單的說，就是用JavaScript與後端伺服器做資料的溝通，資料採用XML的格式，JavaScript動態地從後端拿到XML格式的資料，重新整理、重組後再顯示到網頁上。AJAX基本上是無關Java或.Net的，甚至PHP也可以跟AJAX結合在一起使用。網路上、雜誌裡介紹AJAX的文章相當的多，在這我就不贅述。在這要提醒大家注意的是，因為AJAX，JavaScript又開始大量的應用在網頁裡，前面所提及的混亂又被突顯了出來。混亂不一定只是負面的，所謂時勢造英雄，我們期待有人能出來一統江湖。 </P>
<P>JavaScript的其它應用</P>
<P>JavaScript只能夠運用在網頁上嗎？其實蘋果電腦(Apple)除了硬體上的創意外，在作業系統上的表現一直以來也是使用者的最愛。在新的Mac OS X 10.4裡，有個新的功能叫-Dashboard，它可以讓你執行一些小程式，例如月曆、天氣預報、地圖查找等。這些小程式稱為Widget，而撰寫Widget的主要語言就是JavaScript，當然還可以配合HTML、CSS甚至Java Applet。隨著Mac OS X的使用者日益成長，撰寫Widget已成為一個新興的軟體業。Dashboard其實不是第一個實踐這個概念的程式，早在Mac OS X 10.2時，就有一個叫Konfabulator的軟體做出這樣的平台，在當時大受歡迎。後來Apple在Mac OS X 10.4內建一樣功能的Dashboard時，還飽受外界的批評和指責，認為Apple是抄襲Konfabulator的。隨著Mac OS X直接支援Wedget，Konfabulator漸漸的淡出Mac的舞台。不過Yahoo看上了它，把它給買了下來，而在不久前重新推出Windows/Mac版的Yahoo!Webget，這下Windows的使用者也能享受Widget所帶來的便利和好處。</P>
<P>下一步</P>
<P>世界上有所謂的Java工程師、C/C++工程師、VB工程師等?，好像沒有JavaScript工程師這樣的頭銜，我個人覺得他應該是被需要的。JavaScript其實並不好學，教育訓練是個商機，開發除錯平台也是一個商機。這年頭流行認證，它也是可以著墨的，例如辦理類似SCJP、MCSE這樣的認證考式(事實上是有JavaScript Certification，不過沒像其它認證這麼有公信和正式就是了)。唯有專門的訓練課程及認證才能真正落實JavaScript的標準化，這樣寫出來的JavaScript程式才不會相容性不足，造成用某種瀏覽器才能觀看的特定網頁的情況。</P>
<P>而另一種是像無障礙網頁這種的認證，若你的網頁通過JavaScript相容性審合，那麼在網頁上就可以放上一個標章，証明你的網頁是相容於各種瀏覽器的。以上這些如果能由國際大廠來推動，成功的機會才會比較大，好奇的是，這麼多年來，怎麼沒人想幹這件事？！也許是吃力不討好吧。</P>
<P>註： TIOBE Programming Community Index for December 2005 <A href="http://www.tiobe.com/tpci.htm">http://www.tiobe.com/tpci.htm</A> 相關連結：</P>
<P>ECMA-262<BR><A href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">http://www.ecma-international.org/publications/standards/Ecma-262.htm</A> </P>
<P>Spidermonkey<BR><A href="http://www.mozilla.org/js/spidermonkey/">http://www.mozilla.org/js/spidermonkey/</A></P>
<P>Rhino<BR><A href="http://www.mozilla.org/rhino/">http://www.mozilla.org/rhino/</A></P>
<P>Dashboard<BR><A href="http://www.apple.com/macosx/features/dashboard/">http://www.apple.com/macosx/features/dashboard/</A></P>
<P>Yahoo!Wedgets<BR><A href="http://widgets.yahoo.com/">http://widgets.yahoo.com/</A></P><img src ="http://www.blogjava.net/killvin/aggbug/33278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-03-02 20:09 <a href="http://www.blogjava.net/killvin/archive/2006/03/02/33278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改buffalo代码一 </title><link>http://www.blogjava.net/killvin/archive/2006/03/02/33276.html</link><dc:creator>killvin</dc:creator><author>killvin</author><pubDate>Thu, 02 Mar 2006 11:46:00 GMT</pubDate><guid>http://www.blogjava.net/killvin/archive/2006/03/02/33276.html</guid><description><![CDATA[<P>Buffalo介绍</P>
<P>Web正随着Amowa/Ajax的引入开发开始变得有趣！ </P>
<P>Buffalo是Amowa思想实现的关键组件。Buffalo中定义了Web远程调用的传输基础，并且将远程调用对象完整的序列化到了本地，成为可以被JavaScript编程触及的对象。Buffalo中的重要组件 - BuffaloBinding，提供了将JavaScript对象绑定到HTML元素的能力。这种绑定将是无侵入的，只需要在HTML元素中加入若干个不影响排版的属性，即可将数据与界面绑定。 </P>
<P>Buffalo1.1之前的版本重要的功能主要集中于远程调用与Java对象/JavaScript对象之间的双向序列化，这个特性已经被众多的应用久经考验，被认为是健壮的。它大大减少了在Java对象与JavaScript对象之间需要考虑的细节，开发者可以更用心地进行业务设计和界面设计。1.2版本的推出，引入了新的众多的特性，包括：新的重新改写的Spring集成；与流行javascript库prototype的集成；支持浏览器前进后退按钮，等等。Buffalo努力使Web2.0的概念在这个小小的轻量级的框架中得到体现，让你的应用具备更丰富的表现。 </P>
<P>&nbsp;</P>
<P>问题</P>
<P>可是在使用Buffalo传输对象的过程中我发现Buffalo并不能够很好的传递用户自定义的对象，不光如此在与作者的讨论过程中我还发现很多的人对于Javascript程序的规范根本不屑一顾，似乎选择了Javascript本身就是选择了"自由编程"，可是真的如此吗？</P>
<P>其实Javascript是一个比较纯粹的OO语言，并不想一些报道中所说的那样，对于封装、继承、多态Javascript同样可以完成，既然它是OO的语言，就理所应当的按照某种规范来编写代码，正如<A href="http://blog.csdn.net/Killvin/archive/2006/02/10/596017.aspx">JavaScript說分明 </A>中说得那样，编写Javascript不是一件简单的事情，关键是很多人乱用了这个语言，从而导致给很多的朋友以为写Javascript就是很没有水准的事情（偶以前也是如此），但我最近发现用Javascript这样的动态语言没有一个很好的语言规范，你开发出来的应用只能够停留在小型系统之上，而对于比较大型的应用开发，这样写出来得代买根本无法复用！</P>
<P>再来说说Buffalo传输对象的问题，以下是我自定义的Node对象</P>
<P>function Node(_id , _type)<BR>{</P>
<P>&nbsp;//log("create node object!!!");<BR>&nbsp;//============================== property =================================//<BR>&nbsp;&nbsp;&nbsp; //=========================================================================//<BR>&nbsp;var id = _id;<BR>&nbsp;var type = _type; //&lt;- type的出现在OO世界里本身就是背叛<BR>&nbsp;var brush = null //节点的物理表现句柄<BR>&nbsp;<BR>&nbsp;var rList = new Array();//左节点列表<BR>&nbsp;var lList = new Array();//右节点列表<BR>&nbsp;<BR>&nbsp;var rLine = new Array();//节点的左线列表<BR>&nbsp;var lLine = new Array();//节点的右线列表</P>
<P>&nbsp;var x = 0;//节点的x坐标<BR>&nbsp;var y = 0;//节点的y坐标</P>
<P>&nbsp;var m = false;&nbsp;//标识节点是否可移动<BR>&nbsp;var r = false;&nbsp;//标识节点是否能够建立联系</P>
<P>&nbsp;var name = ""; //节点的名称</P>
<P>&nbsp;//================================ method =================================//<BR>&nbsp;&nbsp;&nbsp; //=========================================================================//</P>
<P>&nbsp;this.getType = function()<BR>&nbsp;{<BR>&nbsp;&nbsp;return type;<BR>&nbsp;}<BR>&nbsp;this.setType = function(_t)<BR>&nbsp;{<BR>&nbsp;&nbsp;type = _t;<BR>&nbsp;}<BR>&nbsp;this.setName = function(_n)<BR>&nbsp;{<BR>&nbsp;&nbsp;name = _n;<BR>&nbsp;}<BR>&nbsp;this.getName = function()<BR>&nbsp;{<BR>&nbsp;&nbsp;return name;<BR>&nbsp;}<BR>&nbsp;this.setId = function(_i)<BR>&nbsp;{<BR>&nbsp;&nbsp;id = _i;<BR>&nbsp;}<BR>&nbsp;this.getId = function()<BR>&nbsp;{<BR>&nbsp;&nbsp;return id;<BR>&nbsp;}<BR>}</P>
<P>然而在使用Buffalo的时候Node对象根本就无法传递，而导致这个问题的原因竟然是我没有"自由的编写Javascript"！其实问题就出在doStructXML 方法上，作者在这里有意的"避开"了这个问题，所以在传递Node的时候对于其私有的方法Buffalo是根本就不考虑的，FAINT!</P>
<P>原先</P>
<P>&nbsp;doStructXML : function(data){<BR>&nbsp;&nbsp;var boClass = data[Buffalo.BOCLASS];<BR>&nbsp;&nbsp;var boType = boClass ? boClass : "java.util.HashMap";<BR>&nbsp;&nbsp;var xml = "&lt;map&gt;\n";<BR>&nbsp;&nbsp;xml += "&lt;type&gt;" +boType+ "&lt;/type&gt;\n";</P>
<P>&nbsp;&nbsp;for (var i in data){<BR>&nbsp;&nbsp;&nbsp;if (data[i] != boType) { <BR>&nbsp;&nbsp;&nbsp;<STRONG>&nbsp;if (typeof(data[i]) == "function") continue; /* the function shouldn't transfered. */</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(i),i)+"\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(data[i]),data[i]) + "\n";<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;xml += "&lt;/map&gt;\n";<BR>&nbsp;&nbsp;return xml;<BR>&nbsp;},</P>
<P>修改后</P>
<P>&nbsp;doStructXML : function(data){<BR>&nbsp;&nbsp;var boClass = data[Buffalo.BOCLASS];<BR>&nbsp;&nbsp;var boType = boClass ? boClass : "java.util.HashMap";<BR>&nbsp;&nbsp;var xml = "&lt;map&gt;\n";<BR>&nbsp;&nbsp;xml += "&lt;type&gt;" +boType+ "&lt;/type&gt;\n";</P>
<P>&nbsp;&nbsp;for (var i in data){<BR>&nbsp;&nbsp;&nbsp;if (data[i] != boType) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;if (typeof(data[i]) == "function") <BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*判断方法名称*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i.substring(0,3) == 'get')<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var _name = i.substring(3,i.length).toLowerCase();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var _value = data[i]();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//alert("functin name[" + this.dataTypeOf(_name) + "]=" + _name <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;+ " | value[" + this.dataTypeOf(_value) + "]=" + _value);</STRONG></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(_name),_name)+"\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(_value),_value) + "\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; /* the function shouldn't transfered. */</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(i),i)+"\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;xml += this.getParamXML(this.dataTypeOf(data[i]),data[i]) + "\n";<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;xml += "&lt;/map&gt;\n";<BR>&nbsp;&nbsp;return xml;<BR>&nbsp;}</P>
<P>&nbsp;</P>
<P>总结</P>
<P>1。Javascript的编写是否应该遵守一定的规范，其实属于程序员自身休养的问题，但我还是觉得复用JAVA的编码规范不是坏事情！</P>
<P>2。时刻记住Buffalo是建立在burlap协议的基础上的，我们应该把注意力放在burlap上而不仅仅只是Buffalo！</P><img src ="http://www.blogjava.net/killvin/aggbug/33276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/killvin/" target="_blank">killvin</a> 2006-03-02 19:46 <a href="http://www.blogjava.net/killvin/archive/2006/03/02/33276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>