|
|
March 09 日本向けシステム開発の場合で、テスト(試験方案)に関しては、いろいろな名詞があります。その中には、テストの分類とし、何の部分を分けますか? 私の印象には、下記の4つがあるようです。 1、「正常系」----正常系とは、入力ミスなどが無く、エラーメッセージなどが一切出ず、最後まで処理が進み、 通常状態に戻るルート。 2、「準正常系」---準正常系とは、エラーメッセージなどは出るが、最終的には、処理が最後まで進まなくても、 通常状態に戻るルート。 3、「異常系」---異常系系とは、通常状態に戻れず、システムを停止、または、リセットするしかないルート。 4、「意地悪テスト」--意地悪テストとは、正常な動作(クリックを複数回連続するなど)で正常に動作することを確認する。 その4つ分類にて、システム試験方案とメッセージレーベルを分けるようです。 December 04 1-BHO(Browser Helper Object,浏览器辅助对象,简称BHO),HO是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVED Interface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行业,比如修改替换浏览器工具栏,添加自己的程序按钮等(见图1)。这些在系统看来都是没有问题的。BHO原来的目的是为了更好的帮助程序员打造个性化浏览器,以及为程序提供更简洁的交互功能,现在很多IE个性化工具就是利用BHO的来实现。 Internet Explorer同普通的Win32程序没有什么两样。借助于BHO,你可以写一个进程内COM对象,这个对象在每次启动时都要加载。这样的对象会在与浏览器相同的上下文中运行,并能对可用的窗口和模块执行任何行动。例如,一个BHO能够探测到典型的事件,如GoBack、GoForward、 DocumentComplete等;另外BHO能够存取浏览器的菜单与工具栏并能做出修改,还能够产生新窗口来显示当前网页的一些额外信息,还能够安装钩子以监控一些消息和动作。 BHO在注册表中的位置是:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects。
2-JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。类似于XML结构,但是不是使用<></>方式,而是采用“{}”进行处理,在编码时可以使用JavaScript的eval()函数对所读出的JSON字符串进行解析,并使用"."方式访问。如:json_object.name,json_object.email。 格式:{"name":"张三","password":"123456","department":"技术部","sex":"男","old":"28"}
3-JFace是建立在SWT之上的UI部件,它是SWT的扩展。JFace工具箱提供了一组功能强大的用户界面组件,开发人员可以轻松地在独立应用程序中利用这些组件,以简化常见的UI编程任务。JFace在其API和实现方面都是独立于窗口系统的,它旨在使用SWT而不隐藏它。
4-JSF(Java Server Faces),JSF全称Java Server Faces ,是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为 JSF是Java的标准。 较常用框架:sun-ri,myfaces,icefaces,richfaces,seam。
5-SVG(Scalable Vector Graphics),可缩放矢量图形,是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG的特点:基于XML,采用文本来描述对象,具有交互X和动态X,完全支持DOM。成为现在网上重要的图片格式之一,因为采用矢量图因此在缩放时可保证图形圆滑感。SVG查看工具:Adobe SVG Viewer。
6-RIA(Rich Internet Applications)富互联网应用。特点是,基于Flash的ActionScript与JavaScript提供完美界面与用户交互感。不仅可以传输文字信息也可以传输音频视频信息,另外由于生成后采用Flash对于代码保护也有一定好处。 当前RIA技术中较流行的框架有: (1)Flex(Macromedia Flash) ----国人较常用的一种框架,国内参考资料较多; (2)Laszlo----一种开源RIA框架技术,国外较常用,国内资料较少,在美纳斯达克NSDQU采用; (3)其他,Avalon,Java SWT,XUL(fireFox插件使用),Bindows <?php
function create_chkimg($sessionid){
try{
$im = @imagecreate(40,20);
$backcolor = imagecolorallocate($im, 125,125,125);
$textcolor = imagecolorallocate($im, 255,255,255);
imagettftext($im, 10,0,1,13, $textcolor, "inc/ANTQUAI.TTF","testing");
imagejpeg($im, "image/checkimg/test.jpg");
} catch(Exception $e){
$e->getMessage();
}
}
?> | November 25 1- AJAX状态值与状态码区别 AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成功都将响应的步骤,可以理解成为AJAX运行步骤。如:正在发送,正在响应等,由AJAX对象与服务器交互时所得;使用“ajax.readyState”获得。(由数字1~4单位数字组成) AJAX状态码是指,无论AJAX访问是否成功,由HTTP协议根据所提交的信息,服务器所返回的HTTP头信息代码,该信息使用“ajax.status”所获得;(由数字1XX,2XX三位数字组成,详细查看RFC) 这就是我们在使用AJAX时为什么采用下面的方式判断所获得的信息是否正确的原因。
if(ajax.readyState == 4 && ajax.status == 200) {
putData(ajax.responseText);
} |
2- AJAX运行步骤与状态值说明 在AJAX实际运行当中,对于访问XMLHttpRequest(XHR)时并不是一次完成的,而是分别经历了多种状态后取得的结果,对于这种状态在AJAX中共有5种,分别是。 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成, 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了 对于上面的状态,其中“0”状态是在定义后自动具有的状态值,而对于成功访问的状态(得到信息)我们大多数采用“4”进行判断。
3- AJAX运行步骤示义图

参考来自:readyState 5种状态(Ajax) November 18 环境: WindowsXp Oracle9i PLSql7.5 1-为什么要导入大规模数据? 创建大规模数据,我个人认为有两种需求: (1)在没有使用其他非第三方工具时,直接使用Oracle命令方式导入的数据或由客户直接手写而成的即有数据,在这种情况下,数据大都是被做成CSV文件方式; (2)测试需要,测试人员在测试程序(系统)压力或缓冲以及其他测试时经常采用的方式,这种情况下需要对数据进行构造并对程序进行测试。(以前测试时遇到过需要对百万级数据测试时,就必须自己构建,千万级时建议使用C写TEXT文件实现)
2-如何创建大规模测试数据? 根据上面所说,其中(2)项需要由测试人员自己创建,我所采用的是Excel与秀凡结合操作。 PS:秀凡作为一款非常实用的文本编辑软件由日本人开发,功能相当强大,我在创建时多采用秀凡的宏记录与块复制功能完成大规模数据创建。 2-1 打开秀凡 进入时由于没有注册选择第一项。
 2-2 在秀凡中复制一条现有数据的CSV结构
 2-3 复制该CSV条项,并启动秀凡宏记录功能,使用宏记录功能追加数据 (1)复制数据项 (2)在第一条项将光标放到最后一列
 (3)点击Shift+F1开始记录宏操作; 记录宏的内容为“回车”>>“粘贴”(Ctrl+V)>>Shift+F1停止记录

 (4)点击Shift+F2执行刚才所执行的宏操作,这时就可以对数据进行创建
 PS:当数据创建100条时,采用同样方式即可快速创建项目。 (5)对于第一项“STVSUI”项,我们可以使用Excel的自动加数的功能将数据变为“STVSUI1XXXX”,这样就不能造成数据重复插入。再采用秀凡的矩形剪切与粘贴,就可以完成不重复的万,十万级,百万级测试数据。
3-使用Oracle的Sqlldr命令将大规模数据追加到数据库中 3-1 创建准备,使用Sqldr命令将之前所创建的数据插入数据库,需要三个文件(二个也可以,为了批处理方便追加一个BAT执行文件) (1)命令执行BAT文件; | sqlldr stvsui/admin@testdb control=testinsert.ctl logfile=lg_testinsert.log commit_discontinued = true | PS:可使” commit_discontinued”参数来确定是否直接进行Commit,默认为“FALSE”。 另外,对于Oracle数据库,Oracle8时采用sqlldr80命令,不成功时请使用该命令
(2)数据定向与表结构写向CTL文件; | LOAD DATA INFILE 'test.csv' INTO TABLE tb_testinsert FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( PID, -- 形状番号 FID, -- 大分類名称ID IID, -- インデックス名称ID SID, -- 小分類名称ID CID, -- カテゴリー名称ID PNAME -- 部品名称 ) | (3)创建的测试数据CSV文件

3-2 进入Windows的命令行方式,执行BAT文件 这时数据就会被追加进入,并且追加的结果被记录到指定的lg_testinsert.log文件中。 October 15 1-环境 Php4.3.8 WinXp IIS5.1 Oracle9i
2-动态链接库加载不成功的错误情况 问题情况说明: 在配置PHP+IIS与Oracle时会出现“Unable to load dynamic library 'C:\php\ext\php_oracle.dll”或“php_oci8.dll”加载不成功的错误提示信息,这种原因主要有以下几方面。 问题解决: (1) 确认ext(扩展目录)在php.ini文件中配置是否正确; (2) 将php目录下的php4ts.dll文件复制到system32目录中; (3) 将php的ext目录中的php_oracle.dll复制到system32目录中; (4) 将oracl\bin\oci.dll与ociw32.dll文件复制到system32目录中 (5) 重启IIS服务器,查看phpinfo的情况,完成确认
3-动态连接加载成功但连接不上Oracle服务器 问题情况说明: 在完成了IIS下加载Oracle后,在IE中使用动态页网访问服务器时,仍会出现,访问被拒绝访问的情况,对于这种情况,主要是由于IIS中采用了匿名用户,当用户使用IE进行访问时,IIS会将该用户默认归属到“IUSR_HostName”中,在IIS中使用该用户进行访问,在IIS服务器设置中被默认设置,由于该默认用户造成对Oracle9i目录没有相应的访问权限,造成不能访问。
 PS:若将该设置去掉后,其他用户将不能通过网络访问该WEB站点。
解决方法: (1)为WindowsXP的NTFS磁盘添加安全选项 打开“控制面板->管理工具->本地安全策略”将“安全设置->本地策略->安全选项”里的“网络访问:本地帐户的共享和安全模式属性”使用 “经典-本地用户以自己的身份验证” (2)为Oracle所在分区追加NTFS属性,并设置访问权限 (2-1)确定ORACLE_HOME 路径所在的分区格式是:NTFS格式; (2-2)在分区属性->安全中,将IUSR_HostnName与IWMA_HostName用户追加到该Oracle目录中,并赋予“读取与运行”权限; (2-3)在分区属性->安全中,将Authenticated Users (如果没有的话添加该用户)看下面的属性,将Read and Execute (读取和运行)的勾去掉,然后又勾上,确定后重新启动机器 August 29 Dojo 1.1.1 对于Dojo的事件绑定有两种,一种为html标准元素绑定,一种为dojo所提供的轻量级元素事件绑定。 1-什么是dojo的轻量级元素,什么是html标准元素? (1)dojo轻量级元素,即,对于html标签中使用dojo的属性再次决定该标签的dojo元素属性(使用“dojotype”属性),代码如下: <div dojotype="dijit.form.Button" id="helloButton">
hello,Button
</div> |
说明:在上面的div中使用“dojotype”来重新决定该标签元素的属性为“dijit.form.Button”即,一个按钮,生成后显示为。
![clip_image002[4]](http://blufiles.storage.msn.com/y1pcIhIMLVAMUUvKzIKJicNcWUGqx3pWHSUPR8GV5bjcKIhPkAtIB85JNex9sSYi8BrgYdIDGCmavs?PARTNER=WRITER) (2)html标准元素,即,如上例中在编写html时如果要产生Button按钮,有两种处理方式,一种是使用<button>标签元素,另一种则使用form中的<input>,代码如下:
<!-- 使用Button元素 -->
<button id="button1">
helloButton
</button>
<!-- 使用form的input元素 -->
<input type="button" id="button2" value="helloButton"/> |
2-在Dojo中如何绑定dojo元素与html标准元素事件 2-1 Dojo元素,html元素与事件绑定标准步骤(如何加载与配置dojo不在说明) (1)根据ID获取元素(使用dojo.byId获取元素) (2)定义事件或对象方法(javaScript自定义) (3)绑定元素与事件(使用dojo.connect将元素与事件与调用方法(或对象方法)进行绑定) (4)引入dojo元素对象(使用dojo.require) (5)确定dojo元素类型(dojo元素时,在html标签中使用“dojotype”属性确定dojo元素) 2-2 dojo元素与事件绑定实例 [1-dojoevent(dojo).html]
<html>
<head>
<title>Dojo Event</title>
<meta content="text/html; charset=UTF-8">
<script type="text/javascript">
var djConfig = {
isDebug: true,
parseOnLoad: true,
bindEncoding: "UTF-8"
};
</script>
<script type="text/javascript" src="js/dojo/dojo/dojo.js"></script>
<script>
/* 加载dojo的dijit.form.Button元素,可以对标记dojotype的元素进行解释 */
dojo.require("dijit.form.Button");
var init = function(){
/* 获取元素ID,并与事件响应相对应 */
var helloButton = dojo.byId("dojobutton");
dojo.connect(helloButton, "onclick", "showButton");
}
function showButton(){
alert("Dojo Event Test!");
}
dojo.addOnLoad(init);
</script>
</head>
<body>
<h1>DojoEvent Test</h1>
<!-- 对div元素定义dojotype,使其变为Button,并设定按钮名称 -->
<div dojotype="dijit.form.Button" id="dojobutton" label="Press Me"/>
</body>
</html> |
 2-3 html标准元素与事绑定实例 [1-dojoevent(html).html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Dojo Event</title>
<script type="text/javascript">
var djConfig = {
isDebug: true,
paserOnLoad: true
};
</script>
<script type="text/javascript" src="js/dojo/dojo/dojo.js"></script>
<script>
function init(){
// 根据ID获取Html元素
var Button1 = dojo.byId("button1");
var Button2 = dojo.byId("button2");
// 绑定对象与事件响应 dojo.connect(Button1, "onclick", "showButton");
dojo.connect(Button2, "onclick", "showButton");
}
// 事件响应方法 function showButton(){
alert("Dojo Event Test!");
}
// 初始化加载 dojo.addOnLoad(init);
</script>
</head>
<body>
<h1>DojoEvent Test</h1>
<button id="button1">helloButton</button>
<input type="button" id="button2" value="helloButton"/>
</body>
</html> |

Dojo 1.1.1 1-什么是Dojo? Dojo(日文解释:道场),Dojo是一个非常强大的面向对象的JavaScript工具箱,开发人员可以很方便的根据OO方式进行开发编码,它可以很方便的在短时间内构建重量级的JS应用,提供了强大的交互功能与界面编辑处理功能,可很方便的处理Ajax请求与漂亮的交互界面,满足Web2.0的要求。
2-Dojo如何安装与使用? 2-1下载下安装 Dojo可以从http://dojotoolkit.org/主站中下载到,将解压后的代码放到项目中相应目录即可。
 2-2 Dojo的使用需要按照以下顺序进行使用。为了保证Html被载入后,保证Dojo中的如视图对应“widget”到网页中的对象,因此需要遵循以下顺序进行使用。 2-2-1 Dojo编码调用顺序 (1)设定djConfig变量; (2)加载dojo.js文件; (3)执行dojo.require加载相应Dojo功能; (4)定义初始化函数init; (5)使用Dojo的addOnload调用初始化函数。Dojo.addOnload(init)。 2-2-2 一个简单的Dojo应用程序(目录存放方式见上图) [index.html] <html> <head> <title>Dojo Toolkit Test Page</title> <meta content="text/html; charset=UTF-8"> <!-- 1--配置dojo启动属性--> <script type="text/javascript"> var djConfig = { isDebug: true, parseOnLoad: true, bindEncoding: "UTF-8" }; </script> <!-- 2--加载dojo基本对象--> <script type="text/javascript" src="js/dojo/dojo/dojo.js"> </script> <script type="text/javascript"> // 3--加载相应工具包 dojo.require("dijit.form.Button"); dojo.require("dijit.TitlePane"); // 4--定义初始化函数 var init = function(){ var node = dojo.byId("testHeading"); dojo.connect(node, "onclick", function(){ dojo.byId("testHeading").innerHTML = "Hello,DojoWorld!"; }); var helloButton = dojo.byId("helloButton"); dojo.connect(helloButton, "onclick", "helloPress"); console.log("Require is done!"); }
function helloPress(){ console.log("Hello,Dojo World!"); } // 5--使用dojo.addOnLoad调用初始化函数 dojo.addOnLoad(init); </script> </head> <body> <!-- this is a Typical WebPage starting point ... --><h1 id="testHeading">Dojo Skeleton Page</h1> <div id="contentNode"> <p> <button dojotype="dijit.form.Button" id="helloButton"> hello,Button </button> </p> </div> </body> </html> |
 3-参照实例说明dojo使用 3-1 djConfig的设定 3-1-1 djConfig定义方式 在dojo中加载dojo.js前需要对dojo相关环境进行配置,在dojo中有两种定义方式,一种是定义djConfig方式,另一种是在加载dojo.js时加入djConfig属性方式。 (1)定义djConfig方式,如上例中
<!-- 1--配置dojo启动属性--> <script type="text/javascript"> var djConfig = { isDebug:true, parseOnLoad:true, bindEncoding:"UTF-8" }; </script> |
(2)加载时定义方式,代码如下
<!-- 2--加载dojo基本对象--> <script type="text/javascript" src="js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true, isDebug:true"></script> |
3-1-2 djConfig的参数 一个完整的djConfig对象定义如下(值均为dojo的默认值)
<script type="text/javascript"> var djConfig = { isDebug: false, debugContainerId: "", bindEncoding: "", allowQueryConfig: false, baseScriptUri: "", parseWidgets: true, searchIds: [], baseRelativePath: "", libraryScriptUri: "", iePreventClobber: false, ieClobberMinimal: true, preventBackButtonFix: true, parseOnLoad: false }; </script> |
(1)isDebug:打开dojo的debug窗体; (2)debugContainerId:默认为空,即让dojo直接使用document.write输出,这样可能会破坏页面的布局,可以指定一个html的元素ID作为输出; (3)bindEncoding:设置默认的bind请求的编码方式(AJAX传递等) (4)allowQueryConfig:个属性指明 dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性, 比如:http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug (5)baseScriptUri:使用URI方式定义dojo的工作路径一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script type="text/javascript" src="../dojo/dojo.js"></script>,自动获取的值便是 ../dojo/ 如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了 (6)parseWidgets:这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度。 (7)searchIds:这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析。 (8)baseRelativePath:采用绝对路径方式定义dojo的路径,如:"c:/dojo" (9)libraryScriptUri:设定dojo其他工具包的路径 (10)parseOnLoad:是否可以使用dojo.addOnLoad预先加载相应dojo对象与视图,如上例中。若去掉该项,则运行后,Button的效果将为默认form按钮。 (11)iePreventClobber:未知 (12)ieClobberMinimal:未知 (13)preventBackButtonFix:未知 (14)parseOnLoad:是否使用预加载方式
3-2 dojo.js的加载 dojo.js的加载可以分两种,一种是加载dojo后,放到工作路径中指定方式。
<script type="text/javascript" src="js/dojo/dojo/dojo.js"></script> |
另一种为使用URL指定方式,可以直接指定AOL链接
<script type="text/javascript" src="http://o.aolcdn.com/dojo/0.4.3/dojo.js "></script> |
3-3 dojo.requrie的实行 像java一样根据业务的不同加载相应的dojo工具包则就需要使用dojo.require进行加载。 *dojo使用空间命名方式,对于加载时,即使用相应目录为加载。如:
 加载时有两种方式:一种为完全加载,另一种为部分加载 完全加载,即,加载dojo指定包中所有工具
dojo.require("dijit.form.*"); |
部分加载,即,加载dojo指定包中指定工具
dojo.require("dijit.form.Button"); |
3-4 初始化函数定义 初始化函数定义需要使用dojo的addOnLoad进行调用,用来处理那些Dojo的界面情况对带有dojotype的元素进行预先解释,否则带有dojotype的元素将仍保持使用html标准方式。 3-5 使用addOnLoad调用初始化函数 使用dojo.addOnLoad(),指定html页面读入后调用的函数。因为对于html的load来说没有完成的话,Widget对象不能被实例化因此需要使用预定义函数进行处理。
dojo.addOnLoad(object,"functionname"); |
*当不读入时使用addOnUnload函数。
1-加载JavaScript方法 1-1 直接加入html方式(头文件定义) <script language="Javascript">
<!--
document.writeln("这是Javascript!采用直接插入的方法!");
-->
</script> |
在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript”> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。 HTML的注释标签<!--和-->:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。 //-Javascript结束:双斜杠表示 Javascript的注释部分,即从//开始到行尾的字符都被忽略。 至于程序中所用到的document.write()函数则表示将括号中的文字输出到窗口中去, 这在后面将会详细介绍。 另外一点需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>......</head> 或<body>.....</body>中的任何地方。 1-2 引用JS文件方式 如果已经存在一个Javascript源文件(以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:在网页中可以这样调用程序:
<script src="Script.js" language="Javascript"></script> |
2-JavaScript的注释 2-1 单行注释方式:“// 文本”; 2-2 多行注释方式:“/* 文本 */”
3-JavaScript的过程控制 3-1 选择结构 用来指明两种程序流方向,在程序中创建一个交叉点(像岔路)。在 Jscript 中有四种选择结构可用。 (1)单一选择结构(if), (2)二路选择结构(if/else), (3)内联三元运算符 ?: (4)多路选择结构(switch)。 3-2 循环结构 使用循环结构来指明当某些条件保持为真时要重复的动作。当控制语句的条件得到满足时(通常在某些迭代的特定数字后),控制跳过循环结构传递到下条语句。在 Jscript 中有四种循环结构可用。 (1)在循环的开头测试表达式(while) (2)在循环的末尾测试表达式(do/while), (3)对对象的每个属性都进行操作(for/in), (4)由计数器控制的循环(for)。
4-判断对象或变量是否存在;
if(typeof(x) == “undefined”){
alert("存在");
} else { alert("不存在"); } |
5-判断对象是否有对应属性;
if("prop" in someObject){
alert("存在prop属性");
} else { alert("不存在prop属性");
} |
6-JavaScript变量与对象
var str1 = "this is String1"; // 字符串变量
var str2 = "this is String2";
var objstr1 = new String(str1); // 字符串对象
var objstr2 = new String(str2);
if(str1 == str2){ alert("Same"); } // 按值判断 if(objstr1.valueOf() != objstr2){ alert("No Same"); } |
7-数组
var myArray = new Array(3);
myArray[0] = "Hello"
myArray[1] = "JavaScript"
myArray[2] = "World!" |
8-JavaScript的11个内置对象 (1)Array--------数组对象 (2)Boolean-----布尔对象 (3)Date---------日期时间对象, (4)Function---函数定义 (5)Global------全局定义 (6)Math--------科学计算函数(PI,sin,pow等) (7)Number----数值对象 (8)Object------对象 (9)RegExp----正则表达对象 (10)Error-----错误对象 (11)String-----字符串对象
9-JavaScript创建自定义对象方法 (1)自定义构造器创建对象(类)
// 创建对象构造器并传递变量 function person(v_name, v_sale, v_sexy){
this.name = v_name; // 类变量name
this.sale = v_sale;
this.sexy = v_sexy;
this.today = new date(); // 内部变量
this.toString = personTostring; // 对象方法指定
} // 对象指定方法实现 function personTostring(){ return "Name :"+this.name+"sale"+this.sale+"sexy"+this.sexy;
} | 使用时:
var personal1 = new personal("stven","2300","1");
alert(personal1.toString()); |
(2)继承内置原型创建对象prototype 对于每个JavaScript内置对象中都存在一个叫prototype的方法该方法就是对指定内置对象中附加相应性性与方法的构造函数(反射) 如,在String对象中追加trim函数
String.prototype.trim = function(){
return this.replace (/(^\s*)|(\s*$)/g, "");
} | 使用时:
var String1 = " testdd ";
String1.trim(); |
10-强制类型比较 在JavaScript中采用自动类型转换方式(像PHP),若要确保真正意义上的相同,并对比类型采用“===”进行判断处理。
"100" == 100 // true
false == 0 // true
?g100?h === 100 // false
false ===0 // false | August 13 Dojo Dojo 是目前最为强大的JS框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的DHTML工具箱。Dojo 很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TAG 的方式进行扩展,而不是通过写 JS 来生成,Dojo 的 API 模仿 Java 类库的组织方式。用 Dojo 写 Web OS 可谓非常方便。Dojo 现在已经 4.0 了,Dojo 强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。 优点:库相当完善,发展时间也比较长,功能强大,据说利用 Dojo 的 io.bind() 可以实现 comet 看见其功能强大非一般,得到 IBM 和 SUN 的支持。 缺点:文件体积比较大,200多KB,初次下载相当慢,此外,Dojo 的类库使用显得不是那么易用,JS语法增强方面不如 Prototype Prototype 它是一个非常优雅的 JS 库,定义了 JS 的面向对象扩展,DOM 操作API,事件等等,以 Prototype 为核心,形成了一个外围的各种各样的 JS 扩展库,是相当有前途的 JS 底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR 集成的 AJAX JS 库),之上还有 Scriptaculous 实现一些JS组件功能和效果。 优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。 缺点:如果说缺点,可能就是功能是他的弱项 dScriptaculous Scriptaculous 是基于prototype.js 框架的 JS 效果。包含了 6 个 js 文件,不同的文件对应不同的 js 效果,所以说,如果底层用 prototype 的话,做js效果用 Scriptaculous 那是再合适不过的了,连大名鼎鼎的 digg 都在用他,可见不一般 优点:基于prototype 是最大的优点,由于使用 prototype 的广泛性,无疑对用户书锦上添花。 缺点:刚刚兴起,需要时间的磨练 Yui-ext 基于 Yahoo UI 的扩展包 yui-ext 是具有 CS 风格的 Web 用户界面组件,能实现复杂的 Layout 布局,界面效果可以和 backbase 媲美,而且使用纯 javascript 代码开发。真正的可编辑的表格 Edit Grid,支持 XML 和 Json 数据类型,直接可以迁入 Grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的 Tree 控件、动态拖拽效果等等。从 1.0 beta 版开始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。 优点:结构化,类似于 java 的结构,清晰明了,底层用到了 Jquery 的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。 缺点:太过复杂,整个界面的构造过于复杂。 Jquery JQuery 是一款同 prototype 一样优秀 js 开发库类,特别是对 css 和 XPath 的支持,使我们写 js 变得更加方便!如果你不是个 js 高手又想写出优秀的 js 效果,那么 JQuery 可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标。 优点:注重简介和高效,js 效果有 yui-ext 的选择,因为 yui-ext 重用了很多 jQuery 的函数 缺点:据说太嫩,历史不悠久。 Mochikit MochiKit 自称为一个轻量级的 js 框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit 可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器 优点:MochiKit.DOM 这部分很实用,简介也是很突出的 缺点:轻量级的缺点 Mootools MooTools 是一个简洁,模块化,面向对象的 JavaScript 框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的 JavaScript 代码。Mootools 跟 prototypejs 相类似,语法几乎一样。但它提供的功能要比 prototypejs 多,而且更强大。比如增加了动画特效、拖放操作等等。 优点:可以定制自己所需要的功能,可以说是 prototypejs 的增强版。 缺点:不大不小,具体应用具体分析。 Moo.fx Moo.fx是 一个超级轻量级的 javascript 特效库(7k),能够与 prototype.js 或mootools 框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何 HTML 元素的 CSS 属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。 优点:小块头有大能耐 缺点:这么小了,已经不错了
引用来自:冷眼 - 技术专栏 http://www.blogjava.net/kent/articles/202855.html August 12 环境:WindowsXp(sp2) 简要说明:使用“netstat”查看端口对应PID(应用程序执行线程),再使用“tasklist”查看PID对应的应用程序。 1-查看端口开放及对应PID情况 方法:使用系统命令“netstat”处理。 Netstat命令用法 命令格式:Netstat -a -e -n -o -s-an -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。 -e 表示显示以太网发送和接收的字节数、数据包数等。 -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。 -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。 -s 表示按协议显示各种连接的统计信息,包括端口号。 -an 查看所有开放的端口

2-使用tasklist查看PID对应程序
 查看相应的程序后将该程序的服务停止即可将相应的端口释放。 August 08 环境: WindowsXp(Sp2) PHP4.3.8 IIS5
因为一直在使用Apache做为WebServer所以有些忘记IIS下是如何配置的了,下面我将根据从网上找到的资料对IIS下安装PHP(ISAPI方式)进行说明。 注:因为刚开始配置PHP的时候采用的是解释方法,即直接采用.php扩展名用php.exe解释的方式,但配置后会因为Oracle.dll加载不上造成项目不可使用的情况,因此采用了ISAPI方式。
1- 安装IIS5(不再详细说明了) 2- 准备PHP环境进行配置 2-1 将PHP解释文件放到你所想安装的目录中(本文以C:\PHP4.3.8为例); 2-2 把C:/PHP4.3.8下面的php.ini-dist文件复制到Windows目录下,并改名成php.ini; *配置Extension与Session时需要打开该ini文件采用绝对路径(全路径)方式书写; 2-3 把C:/PHP4.3.8/php4ts.dll复制到C:/Windows/system32目录下; 2-4 点开始/运行,输入mmc启动Windows综合管理台,选择菜单中“文件”->“管理追加与删除”在弹出的窗口中点击[添加]按钮,在后弹出的窗口中选择“计算机管理”,点击[添加]按钮(点完后窗口不消息),再点击[关闭]即完成添加; *这时会在前一窗口中显示出被添加的管理项。 2-5 选择2-4所添加的“计算机管理”项,点击“服务与程序”项,选择“Internet服务项”; 2-6 在计算机管理窗口上展开“服务和应用程序”->“Internet信息服务”,在“默认Web站点”上点鼠标右键,选属性,这时系统弹出“默认Web站点属性”窗口; 2-7 在“默认Web站点属性”窗口上点取“ISAPI筛选器”标签,点击“添加”按钮,在弹出的“筛选器属性”窗口的“筛选器名称”中输入“PHP”,“可执行文件”中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,点击[确定]; 2-8 在“默认Web站点属性”窗口上点取“主目录”标签,点“配置”按钮,在弹出的“应用程序配置”窗口中点取“添加”按钮,在弹出的“添加->编辑应用程序扩展名映像”对话框中的“可执行文件”文本框中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,“扩展名”文本框中输入“.php”(注意一定要有那个点),点击[确定]; 2-9 回到命令行窗口,输入“net stop iisadmin”命令,终止IIS服务。系统会问你是否要将相关的服务也停止,答 2-10 输入“net start w3svc”命令,重新启动IIS服务; *因为采用的是isapi方式(与Apache模块方式相似)因此每次重新配置php的时候都需要重启IIS服务器。 3- 查看配置情况验证php解释运行(制作一个phpinfo.php文件) [phpinfo.php]
把这个文件保存在默认Web节点的默认文文件目录下(C:/Inetpub/wwwroot),然后打开浏览器,在地址栏中输入localhost/hello.php,如果顺利,经典的“Hello,World!”应该出现在你的浏览器中。如果找不到页面,而你也能确认上述几步都没问题,那么在浏览器的地址栏中输入地址127.0.0.1/hello.php试试看,如果能成功,则说明你的hosts文件有问题,请编辑C:/WINNT/system32/drivers\etc下面的hosts文件,加入“127.0.0.1 localhost”一行。
资料整理来自:php 168论坛http://bbs.php168.com/simple/index.php?t120797.html August 07 从9i开始,oracle的安装缺省包含了XDB。在数据库后,Oracle XDB的http服务自动霸占了8080端口,这给使用或JBoss、Tomcat进行java web开发的人造成了不小的麻烦。 这里介绍修改XDB的http和ftp服务端口的3种方法: 1.使用dbms_xdb包修改端口设置 使用sys登录sqlplus sqlplus sys/syspassword as sysdba 然后执行如下的脚本 ============================ -- Change the HTTP/WEBDAV port from 8080 to 8081 call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get() , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()' , 8081)) / -- Change the FTP port from 2100 to 2111 call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get() , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()' , 2111)) / COMMIT; EXEC dbms_xdb.cfg_refresh;
2.使用OEM console 选择数据库,XML Database,Configuration。更改XDB的有关设置。 3.修改SPFILE[SID名].ORA文件,去掉数据库的初始化参数: 这个文件是Oracle的启动配置文件dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)',将会禁止XDB的http和ftp服务。 重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise Manager Console和其他客户端连接,这时请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,重启监听器。
转载来自:中国IT实验室,http://oracle.chinaitlab.com/install/351299.html *用于个人技术类收藏,仅用于个人。
|
|
|
|