window.CommonPatPersonSearchFrame.document.CommonPatPersonSearchForm.txtSearchCode.focus();
window.CommonPatPersonSearchFrame.document.CommonPatPersonSearchForm.txtSearchCode.focus();
??// obtain the dropdownlist control
??var ct1 = null;
??if (setter == "OperateDoctor1"){
???ctl = document.OTRequestForm.ddOperateDoctor1Subspecialty;
??}
??if (setter == "OperateDoctor2"){
???ctl = document.OTRequestForm.ddOperateDoctor2Subspecialty;
??}
??if (setter == "RequestDoctor"){
???ctl = document.OTRequestForm.ddRequestDoctorSubspecialty;
??}
??if (ctl != null){
???clearDropdown(ctl);
??}
??// get the text and value
??var subSpecInfo =? dropdownValue.split("&&");
??for (i=0; i<subSpecInfo.length; i++){
???// create a new option
???var newOpt = document.createElement("option");
???var subSpec = subSpecInfo[i].split("|");
???newOpt.text = subSpec[1];
???newOpt.value = subSpec[0];
???ctl.add(newOpt);
??}
???
}
得到CVS里所有文件清單
用WINCVS 不能得到所有CVS里的文件清單,以EXCEL形式。
現(xiàn)介紹用這個方法:
1: check out? 最新CVS所有文件。
2: 用批處理刪除其中的CVS目錄和一些無用的class 文件和其他一些文件。
3: 用ultraEdit 軟件, 多文件查找,只填寫目錄和選中搜索子目錄,和保存到新文件。
此批處理文件用來參數(shù)CVS目錄和一些有標(biāo)志的文件或目錄
@echo On
@Rem 刪除CVS版本控制目錄
@REM 刪除所有有規(guī)律的目錄
@for /r . %%a in (.) do @if exist "%%a\CVS" rd /s /q "%%a\CVS"
@REM 刪除所有有規(guī)律的文件
@for /r . %%a in (.) do @if exist "%%a\EJS*.*" del /f /s /q "%%a\EJS*.*"
@for /r . %%a in (.) do @if exist "%%a\_*.*" del /f /s /q "%%a\_*.*"
@Rem for /r . %%a in (.) do @if exist "%%a\CVS" @echo "%%a\CVS"
@echo Mission Completed.
@pause
進(jìn)入首頁立刻會彈出一個窗口,或者按一個連接或按鈕彈出,通常在這個窗口里會顯示一些注意事項(xiàng)、版權(quán)信息 、警告、歡迎光顧之類的話或者作者想要特別提示的信息。只要往該頁面的HTML里加入幾段Javascript代碼即可實(shí)現(xiàn).
????? window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,
????? left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o,
????? status=no') //這句要寫成一行
參數(shù)解釋:
<SCRIPT LANGUAGE="javascript"> js腳本開始;
window.open 彈出新窗口的命令;
'page.html' 彈出窗口的文件名;
'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
height=100 窗口高度;
width=400 窗口寬度;
top=0 窗口距離屏幕上方的象素值;
left=0 窗口距離屏幕左側(cè)的象素值;
toolbar=no 是否顯示工具欄,yes為顯示;
menubar,scrollbars 表示菜單欄和滾動欄。
resizable=no 是否允許改變窗口大小,yes為允許;
location=no 是否顯示地址欄,yes為允許;
status=no 是否顯示狀態(tài)欄內(nèi)的信息(通常是文件已經(jīng)打開),yes為允許;
</SCRIPT> js腳本結(jié)束
【1、最基本的彈出窗口代碼】
?????
????? <SCRIPT LANGUAGE="javascript">
????? <!--
????? window.open ('page.html')
????? -->
????? </SCRIPT>
?????
????? 因?yàn)橹且欢蝚avascripts代碼,所以它們應(yīng)該放在<SCRIPT
????? LANGUAGE="javascript">標(biāo)簽和</script>之間。<!-- 和
????? -->是對一些版本低的瀏覽器起作用,在這些老瀏覽器中不會將標(biāo)簽中的代碼作為文本顯示出來。要養(yǎng)成這個好習(xí)慣啊。window.open
????? ('page.html')
????? 用于控制彈出新的窗口page.html,如果page.html不與主窗口在同一路徑下,前面應(yīng)寫明路徑,絕對路徑(http://)和相對路徑(../)均可。用單引號和雙引號都可以,只是不要混用。這一段代碼可以加入HTML的任意位置,<head>和</head>之間可以,<body>間</body>也可以,越前越早執(zhí)行,尤其是頁面代碼長,又想使頁面早點(diǎn)彈出就盡量往前放。
?????
????? 【2、經(jīng)過設(shè)置后的彈出窗口】
?????
????? 下面再說一說彈出窗口的設(shè)置。只要再往上面的代碼中加一點(diǎn)東西就可以了。
我們來定制這個彈出的窗口的外觀,尺寸大小,彈出的位置以適應(yīng)該頁面的具體情況。
?????
????? <SCRIPT LANGUAGE="javascript">
????? <!--
????? window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,
????? left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o,
????? status=no') //這句要寫成一行
????? -->
????? </SCRIPT>
????? ?????
????? 【3、用函數(shù)控制彈出窗口】
?????
????? 下面是一個完整的代碼。
????? <html>
????? <head>
????? <script LANGUAGE="JavaScript">
????? <!--
????? function openwin() {
????? window.open ("page.html", "newwindow", "height=100, width=400, toolbar
????? =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")
????? //寫成一行
????? }
????? //-->
????? </script>
????? </head>
????? <body onload="openwin()">
????? 任意的頁面內(nèi)容...
????? </body>
????? </html>
????? 這里定義了一個函數(shù)openwin(),函數(shù)內(nèi)容就是打開一個窗口。在調(diào)用它之前沒有任何用途。怎么調(diào)用呢?
????? 方法一:<body onload="openwin()"> 瀏覽器讀頁面時彈出窗口;
????? 方法二:<body onunload="openwin()"> 瀏覽器離開頁面時彈出窗口;
????? 方法三:用一個連接調(diào)用:
????? <a href="#" onclick="openwin()">打開一個窗口</a>
????? 注意:使用的“#”是虛連接。
????? 方法四:用一個按鈕調(diào)用:
????? <input type="button" onclick="openwin()" value="打開窗口">
?????
?????
????? 【4、同時彈出2個窗口】
?????
????? 對源代碼稍微改動一下:
?????
????? <script LANGUAGE="JavaScript">
????? <!--
????? function openwin() {
????? window.open ("page.html", "newwindow", "height=100, width=100, top=0,
????? left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o,
????? status=no")//寫成一行
????? window.open ("page2.html", "newwindow2", "height=100, width=100, top=1
????? 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca
????? tion=no, status=no")//寫成一行
????? }
????? //-->
????? </script>
????? 為避免彈出的2個窗口覆蓋,用top和left控制一下彈出的位置不要相互覆蓋即可 。最后用上面說過的四種方法調(diào)用即可。
????? 注意:2個窗口的name(newwindows和newwindow2)不要相同,或者干脆全部為空。
??????
????? 【5、主窗口打開文件1.htm,同時彈出小窗口page.html】
????? 如下代碼加入主窗口<head>區(qū):
????? <script language="javascript">
????? <!--
????? function openwin() {
????? window.open("page.html","","width=200,height=200")
????? }
????? //-->
????? </script>
????? 加入<body>區(qū):
????? <a href="1.htm" onclick="openwin()">open</a>即可。
??????
????? 【6、彈出的窗口之定時關(guān)閉控制】
?????
????? 下面我們再對彈出的窗口進(jìn)行一些控制,效果就更好了。如果我們再將一小段
????? 代碼加入彈出的頁面(注意是加入page.html的HTML中,可不是主頁面中,否則 ...),讓它10秒后自動關(guān)閉是不是更酷了?
????? 首先,將如下代碼加入page.html文件的<head>區(qū):
????? <script language="JavaScript">
????? function closeit()
????? {
????? setTimeout("self.close()",10000) //毫秒
????? }
????? </script>
????? 然后,再用<body onload="closeit()">
????? 這一句話代替page.html中原有的<BODY>這一句就可以了。(這一句話千萬不要忘記寫啊!這一句的作用是調(diào)用關(guān)閉窗
????? 口的代碼,10秒鐘后就自行關(guān)閉該窗口。)
????? 【7、在彈出窗口中加上一個關(guān)閉按鈕】
????? <FORM>
????? <INPUT TYPE='BUTTON' VALUE='關(guān)閉' onClick='window.close()'>
????? </FORM>
????? 呵呵,現(xiàn)在更加完美了!
????? 【8、內(nèi)包含的彈出窗口-一個頁面兩個窗口】
????? 上面的例子都包含兩個窗口,一個是主窗口,另一個是彈出的小窗口。通過下面的例子,你可以在一個頁面內(nèi)完成上面的效果。
????? <html>
????? <head>
????? <SCRIPT LANGUAGE="JavaScript">
????? function openwin()
????? {
????? OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no
????? ,scrollbars="+scroll+",menubar=no");
????? //寫成一行
????? OpenWindow.document.write("<TITLE>例子</TITLE>")
????? OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
????? OpenWindow.document.write("<h1>Hello!</h1>")
????? OpenWindow.document.write("New window opened!")
????? OpenWindow.document.write("</BODY>")
????? OpenWindow.document.write("</HTML>")
????? OpenWindow.document.close()
????? }
????? </SCRIPT>
????? </head>
????? <body>
????? <a href="#" onclick="openwin()">打開一個窗口</a>
????? <input type="button" onclick="openwin()" value="打開窗口">
????? </body>
????? </html>
????? 看看OpenWindow.document.write()里面的代碼不就是標(biāo)準(zhǔn)的HTML嗎?只要按照
????? 格式寫更多的行即可。千萬注意多一個標(biāo)簽或少一個標(biāo)簽就會出現(xiàn)錯誤。記得用 OpenWindow.document.close()結(jié)束啊。
????? 【9、終極應(yīng)用--彈出的窗口之Cookie控制】
????? 回想一下,上面的彈出窗口雖然酷,但是有一點(diǎn)小毛病(沉浸在喜悅之中,一定
????? 沒有發(fā)現(xiàn)吧?)比如你將上面的腳本放在一個需要頻繁經(jīng)過的頁面里(例如首頁),那么每次刷新這個頁面,窗口都會彈出一次,是不是非常煩人?:-(
????? 有解決的辦法嗎?Yes! ;-) Follow me.我們使用cookie來控制一下就可以了。
????? 首先,將如下代碼加入主頁面HTML的<HEAD>區(qū):
????? <script>
????? function openwin(){
????? window.open("page.html","","width=200,height=200")
????? }
????? function get_cookie(Name) {
????? var search = Name + "="
????? var returnvalue = "";
????? if (document.cookie.length > 0) {
????? offset = document.cookie.indexOf(search)
????? if (offset != -1) {
????? offset += search.length
????? end = document.cookie.indexOf(";", offset);
????? if (end == -1)
????? end = document.cookie.length;
????? returnvalue=unescape(document.cookie.substring(offset, end))
????? }
????? }
????? return returnvalue;
????? }
????? function loadpopup(){
????? if (get_cookie('popped')==''){
????? openwin()
????? document.cookie="popped=yes"
????? }
????? }
????? </script>
????? 然后,用<body
????? onload="loadpopup()">(注意不是openwin而是loadpop啊!)替換主頁面中原有的<BODY>這一句即可。你可以試著刷新一下這個頁面或重新進(jìn)
????? 入該頁面,窗口再也不會彈出了。真正的Pop-Only-Once!
????? 寫到這里彈出窗口的制作和應(yīng)用技巧基本上算是完成了
最近做項(xiàng)目發(fā)現(xiàn)很多SQL沒有優(yōu)化: 現(xiàn)在總結(jié)幾種優(yōu)化方式.
?首先先了解一個SQL語句的執(zhí)行過程分3步: 語法分析(parase)與編譯,執(zhí)行,取數(shù)據(jù).
1: 在語法分析與編譯時:oracle 使用哈希函數(shù)為SQL語句在庫緩存中分配一個SQL區(qū),
首先檢查語句是否存在,若在,則查詢數(shù)據(jù)庫字典、檢查必須的權(quán)限。
若無,需要語法分析與編譯。所以SQL語句存在與內(nèi)存中,將減少分析,編譯時間。
SQL語句的分析與編譯占整個語句運(yùn)行過程的60%的時間,SQL優(yōu)化的目標(biāo)就是減少分析與編譯的時間,共享代碼。
查詢SQL語句分析與編譯的時間:
select * from v$sysstat
where name in ('parse time cpu','parse time elapsed','parse count (hard)')
一個SQL語句的響應(yīng)時間(elapsed time )應(yīng)該是服務(wù)時間+等待時間.
服務(wù)時間= CPU執(zhí)行時間.
等待時間 可以從v$system_event
select total_waits, total_timeouts, time_waited, average_wait ,event
from v$system_event
where event='latch free'
所以解析一個SQL語句的平均等待時間是"等待時間/parse count" 這個值接近0
通過數(shù)據(jù)字典v$sqlare,可以查詢到頻繁被分析與編譯的SQL語句.應(yīng)該減少SQL語句的分析與編譯的次數(shù).
2: 將常用的實(shí)體駐留內(nèi)存.
為了減少分析與編譯時間,可以將常用的的實(shí)體如: 存儲過程,包等,盡可能駐留在內(nèi)存區(qū)域.
?1)預(yù)留內(nèi)存空間. sql> show parameter shared_pool_reserved_size
?????? 2)將頻繁使用的實(shí)體駐留在內(nèi)存中. 在使用DBMS_SHARED_POOL程序包前,必須首先運(yùn)行系統(tǒng)提供的程序包: dbmspool.sql 和prvtpool.plb
?在加載這兩個程序包后,自動生成所需的包.
????? 加載: sql> @/u01/app/oracle/product/8.17/rdbms/admin/dbmspool.sql
?????????? sql> @/u01/app/oracle/product/8.17/rdbms/admin/prvtpool.sql
????? 包DBMS_SHARED_POOL包含以下存儲過程.
????? dbms_shared_pool.keep 用于將實(shí)體保存內(nèi)存. dbms_shared_pool.keep(object in varchar2,[type in char default p]);
???????????????????????????? object 表示參數(shù)名, type 表示被駐留內(nèi)存的實(shí)體類型;P 表示存儲過程,C表示光標(biāo),R表示觸發(fā)器,默認(rèn)P
???????
????? dbms_shared_pool.unkeep 用于取消被設(shè)置進(jìn)入內(nèi)存的實(shí)體. dbms_shared_pool.unkeep(object in varchar2,[type in char default p]);
???????????????????????????? object 表示參數(shù)名, type 表示被駐留內(nèi)存的實(shí)體類型;P 表示存儲過程,C表示光標(biāo),R表示觸發(fā)器,默認(rèn)P
?????
????? dbms_shared_pool.size(minsize in number)
????? select name ,type ,source_size+code_size+parsed_size+error_size "total bytes"
????? from dba_object_size
????? where owner='SCOTT'
3: 創(chuàng)建索引.
?? select index_name,table_owner, table_name, tablespace_name from all_indexes
??
?? select user_indexes.TABLE_NAME, user_indexes.INDEX_NAME,uniqueness, column_name
?? from user_ind_columns ,user_indexes
?? where user_ind_columns.INDEX_NAME=user_indexes.INDEX_NAME
?? and user_ind_columns.TABLE_NAME=user_indexes.TABLE_NAME
?? order by user_indexes.TABLE_TYPE,user_indexes.TABLE_NAME,user_indexes.INDEX_NAME,user_ind_columns.COLUMN_POSITION
4: 創(chuàng)建聚簇(cluster): 是一組存儲在一起的有共同列或經(jīng)常一起使用的表,被聚簇的兩個表只有一個數(shù)據(jù)段.聚簇表在存儲時,在物理層將子表合并到父表中,這樣就少了表的連接時間.
5: 創(chuàng)建哈希索引.
?
6: SQL優(yōu)化器: 基于成本的優(yōu)化器CBO(cose_based)和基于規(guī)則RBO(rule_based)
?? sql> show parameter OPTIMIZER_MODE
?? 可以修改參數(shù)文件: initSID.ora,增加: optimizer_Mode={CHOOSE| RULE| FIRST_ROWS|ALL_ROWS}
? all_rows , first_rows(n)基于成本; rule 基于規(guī)則,choose基于規(guī)則、成本。
? /*+ ordered*/
? /*+ rule */
? /*+ first_rows(50) */
? /*+ordered star*/
? 寫發(fā):?
? alter system flush shared_pool;
select /*+ rule */ aa from visit
今天弄程序,發(fā)現(xiàn)XML中一個很陌生的東東---CDATA, 問了同事他們也不知道,只有自己查資料,后來發(fā)現(xiàn)原來很簡單的東西.
在XML文檔中的所有文本都會被解析器解析。
只有在CDATA部件之內(nèi)的文本會被解析器忽略。
下面是五個在XML文檔中預(yù)定義好的實(shí)體:
<<小于號
>>大于號
&&和
''單引號
""雙引號
實(shí)體必須以符號"&"開頭,以符號";"結(jié)尾。
注意: 只有"<" 字符和"&"字符對于XML來說是嚴(yán)格禁止使用的。剩下的都是合法的,為了減少出錯,使用實(shí)體是一個好習(xí)慣。
CDATA部件
在CDATA內(nèi)部的所有內(nèi)容都會被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
一個 CDATA 部件以"<![CDATA[" 標(biāo)記開始,以"]]>"標(biāo)記結(jié)束,注意"]]>"中間沒有空格
例如:
<![CDATA[
UPDATE USERMSTR SET LOGON_SUCCESS_COUNTER = 0
]]>