﻿<?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-子期的专栏-文章分类-JavaScript</title><link>http://www.blogjava.net/leeziqi/category/31445.html</link><description>我有我想法</description><language>zh-cn</language><lastBuildDate>Fri, 16 May 2008 05:59:42 GMT</lastBuildDate><pubDate>Fri, 16 May 2008 05:59:42 GMT</pubDate><ttl>60</ttl><item><title>基于frameSet的JsUnit测试</title><link>http://www.blogjava.net/leeziqi/articles/200841.html</link><dc:creator>子期</dc:creator><author>子期</author><pubDate>Fri, 16 May 2008 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/leeziqi/articles/200841.html</guid><wfw:comment>http://www.blogjava.net/leeziqi/comments/200841.html</wfw:comment><comments>http://www.blogjava.net/leeziqi/articles/200841.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leeziqi/comments/commentRss/200841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leeziqi/services/trackbacks/200841.html</trackback:ping><description><![CDATA[<p><font size="3">在实际web应用里面很有可能需要使用到多个frameset,如果单单对具体的某个frame的函数或者对象进行测试只能保证该函数和对象的正确性。如何整合多个frame进行整合测试呢，我这里做了一些测试，希望能够给大家一些参考。</font></p>
<p><font size="3">我先介绍一下我demo里面一个有3个frame，分别是tempFrame，topFrame和mainFrame。主框架是index.htm。由于JsUnit进行测试的时候需要传入一个htm的文件，所以这里传入主框index.htm，所有的测试案例都写在index.htm中。</font></p>
<p><font size="3">1）调用其他frame的函数：在主框架中获取其他frame可以通过window.&#8220;frame的名称&#8221;。如：window.topFrame获取topFrame对象。我在topFrame中有一个叫addTwoNumbers的函数。为了测试这个函数我可以这样做：<br />
<span class="Code">function testSimpleJS()<br />
{<br />
&nbsp;var topFrame = window.topFrame;<br />
&nbsp;assertEquals("1+1 =2", 2, topFrame.addTwoNumbers(1,1));<br />
} </span><br />
通过测试，出现美妙的绿色成功条</font></p>
<p><font size="3">2）调用其他frame的对象：如果我在mainFrame里面有一个SimpleDateFormat的对象，我可以先获取mainFrame对象，然后再初始化mainFrame中的SimpleDateFormat。大概的代码如下：<br />
<span class="Code">var mainFrame = window.mainFrame;&nbsp;//获取mainFrame对象<br />
var oSimpleDate = new mainFrame.SimpleDateFormat("YYYYDD");&nbsp;//初始化对象</span><br />
通过测试，出现美妙的绿色成功条</font></p>
<p><font size="3">3）在frame中又调用了其他frame的对象或者函数：例如我在mainFrame中有一个函数是调用topFrame中的addTwoNumbers。，可以通过在mainFrame中加一个addTwoNumbers方法去测试。，代码如下：<br />
<span class="Code">function addTwoNumbers(iParam1, iParam2)<br />
{<br />
&nbsp;return parent.topFrame.addTwoNumbers(iParam1, iParam2);<br />
}</span><br />
</font><font size="3">在index里面只要测试mainFrame中的addTwoNumbers就可以间接知道topFrame中<br />
addTwoNumbers是否返回正确的结果。在实际的使用过程中很有可能不同的frame会频繁的相互调用，通过这样的办法就能很好的对其进行测试。</font></p>
<p><font size="3">写在最后的话：通过测试，发现不同的frame之间函数调用效率特别的低下，所以建议大家需要使用这种模式的时候要考虑清楚，如果可以避免还是尽量避免。</font></p>
<p><font size="3">本代码提供一个示范的作用，并没有提供很详细的注释，如果在测试中有什么问题可以和本人联系。<span class="Title"><a href="http://sam_lee.googlegroups.com/web/frame_test.rar?gsc=OMplFgsAAAAs4BuZmAjStnZbCtDJwUx4">源代码</a></span></font></p>
<img src ="http://www.blogjava.net/leeziqi/aggbug/200841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leeziqi/" target="_blank">子期</a> 2008-05-16 11:33 <a href="http://www.blogjava.net/leeziqi/articles/200841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于继承的Thread对象</title><link>http://www.blogjava.net/leeziqi/articles/200098.html</link><dc:creator>子期</dc:creator><author>子期</author><pubDate>Mon, 12 May 2008 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/leeziqi/articles/200098.html</guid><wfw:comment>http://www.blogjava.net/leeziqi/comments/200098.html</wfw:comment><comments>http://www.blogjava.net/leeziqi/articles/200098.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leeziqi/comments/commentRss/200098.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leeziqi/services/trackbacks/200098.html</trackback:ping><description><![CDATA[<p><font size="3">昨天写的版本在启动一个线程的时候只是单纯的构造一个Thread对象，你也许会问如果需要通过继承可以怎么做？今天补充一个通过继承Thread对象实现自己线程的方法。其中thread.js做了一些细小的调整。 &nbsp;</font></p>
<p><font color="#ffa500" size="3">Thread.prototype.start = function()<br />
{&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; </font><font color="#ffa500" size="3">//在500毫秒后执行其本身或者子类的run&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; setTimeout(this.run, 500);<br />
} </font></p>
<p><font size="3">this.run能够很好的找到子类的run方法，所以能确保run方法的顺利调用。在应用程序中需要使用到自定义的Thread去继承Thread对象可以这样做。 </font></p>
<p><font color="#ffa500" size="3">/**<br />
&nbsp;&nbsp;* 继承于Thread对象<br />
&nbsp;&nbsp;*/<br />
function MyThread(){}</font></p>
<p><font color="#ffa500" size="3">&nbsp;MyThread.prototype = new Thread(); &nbsp;</font></p>
<p><font color="#ffa500" size="3">MyThread.prototype.run = function()<br />
{&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; alert("I'am running.................");<br />
} </font></p>
<p><font color="#ffa500" size="3">var oThread = new MyThread();&nbsp;</font></p>
<p><font color="#ffa500" size="3">oThread.start();</font></p>
<p><font color="#000000"><font size="3">demo文件：</font><a href="http://blog.csdn.net//http://sam_lee.googlegroups.com/web/thread.rar?gsc=imei8ryaaadanwbx-2grgmmzpmfgfscgbg-gatlp4mryfomfiximkw"><font size="3">源文件</font></a></font></p>
<img src ="http://www.blogjava.net/leeziqi/aggbug/200098.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leeziqi/" target="_blank">子期</a> 2008-05-12 22:27 <a href="http://www.blogjava.net/leeziqi/articles/200098.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新写的JavaScript的对象</title><link>http://www.blogjava.net/leeziqi/articles/199942.html</link><dc:creator>子期</dc:creator><author>子期</author><pubDate>Mon, 12 May 2008 01:40:00 GMT</pubDate><guid>http://www.blogjava.net/leeziqi/articles/199942.html</guid><wfw:comment>http://www.blogjava.net/leeziqi/comments/199942.html</wfw:comment><comments>http://www.blogjava.net/leeziqi/articles/199942.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leeziqi/comments/commentRss/199942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leeziqi/services/trackbacks/199942.html</trackback:ping><description><![CDATA[<p><font face="Times New Roman" size="3">不经不觉跨入人生的第25个年头，发现自己从网络上获得太多而没有好好的贡献自己的力量，自感惭愧。所以觉得要为网络做些事情，最近需要对公司开发平台进行改造，里面很多使用到JavaScript,在这里开放几个自己写的对象。<br />
&nbsp;&nbsp;&nbsp; 1）先是提供一个JavaScript版本的import，可以引入js文件和css文件，这个方法原来是从网络上别人写的一个import中得到启发。然后加入一部分自己的理解，可能import的参数有点多，但是我都觉得是必要的。在这里先展示一个例子：<br />
&nbsp;&nbsp;&nbsp; $import("D:/html/js/thread.js",FileType.JSFILE, true);<br />
&nbsp;&nbsp;&nbsp; import具体参数的定义可以参看源文件的注释，这里对于import使用绝对路径，而且我这个import方法只能用在IE（跟我自己做的项目有关系）<br />
&nbsp;&nbsp;&nbsp; 2）第一个是Thread对象。该对象以Java的Thread为蓝本，能够进行休眠和启动一个线程。但是由于JavaScript的特殊性，如果你需要在sleep之后再执行一连串的代码就必须写在一个函数里面通过形参传入sleep方法里面。如：<br />
&nbsp;&nbsp;&nbsp; function timesUp()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //todo something when times up<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; Thread.sleep(timesUp, 1);&nbsp;&nbsp;&nbsp;&nbsp; //1秒后就可以自动执行timesUp方法<br />
&nbsp;&nbsp;&nbsp; Thread.interruptSleep();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取消休眠<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; 如果需要启动一个就需要初始化一个线程对象<br />
&nbsp;&nbsp;&nbsp; var oMyThread = new Thread();<br />
&nbsp;&nbsp;&nbsp; oMyThread.start();<br />
&nbsp;&nbsp;&nbsp; Thread.prototype.run = function()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //todo somthing when thread start<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; 3)第二个是TimeTask对象，该对象也是使用相隔指定的时间执行固定的任务，可以启动定时任务和取消定时任务。如：<br />
&nbsp;&nbsp;&nbsp; var timeTask = new TimeTask();<br />
&nbsp;&nbsp;&nbsp; var task = new Thread();<br />
&nbsp;&nbsp;&nbsp; timeTask.schedule(task, 1);&nbsp; //每1秒执行一个任务<br />
&nbsp;&nbsp;&nbsp; //任务的内容<br />
&nbsp;&nbsp;&nbsp; Thread.prototype.run = function()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //to do something....<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; timeTask.cancel(); //需要结束任务的时候就取消<br />
&nbsp;&nbsp;&nbsp; 4）SimpleDateFormat对象是根据Java版本的SimpleDateFormat改写而来，主要用于定制自定义的日期对象，由于日期对象在网页中使用也是非常的频繁，所以写了这个对象。使用如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; var oToday = new Date();<br />
&nbsp;&nbsp;&nbsp;&nbsp; var oSimpleDate = new SimpleDateFormat("yyyy年MM月dd日 hh小时mm分钟"); //自定义日期<br />
&nbsp;&nbsp;&nbsp;&nbsp; var sToday = oSimpleDate.format(oToday); //得到响应的字符串<br />
&nbsp;&nbsp;&nbsp; 5）Verify对象是一个校验对象，可以校验日期，数字，对象等，这里不做详细介绍都是可以在代码中找到响应的注释。<br />
&nbsp;&nbsp;&nbsp; 本次上传的代码都在js文件夹中，测试代码在test中，测试代码是经过jsunit测试验证的，还有一部分是从网页中使用的demo以供参考。本代码只提供个人学习使用，如果用在商业中需经过本人同意。同时希望同行能多多提出建议，谢谢！</font></p>
<p><font face="Times New Roman" size="3">资源文件：<a href="http://sam_lee.googlegroups.com/web/upload.rar?gda=09u4FDsAAAA5AFFP1MTRln9qqdAKW5HZRr0Wg_6yPKujJxDj9Z3LXmG1qiJ7UbTIup-M2XPURDTuc0egkrO0tQ3VoDrLUtsQ&amp;gsc=5xNZlhYAAAAsy67osbwPjY_9rrG6eFMfbG-gATLp4MryfoMfixIMkw">源文件</a></font></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/leeziqi/aggbug/199942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leeziqi/" target="_blank">子期</a> 2008-05-12 09:40 <a href="http://www.blogjava.net/leeziqi/articles/199942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>