テキスト広告:Amazon Primeday

日曜日, 3月 14, 2010

[JavaScript]XMLHttpRequestの使用方法

▼質問
JavaScriptを使って簡単にWEBサーバの状態を監視したいんだ。

何かいい方法はないか教えてくれないか!

▼回答
それなら、XMLHttpRequestを使うとできると思うよ。

簡単な手順とサンプルを教えてあげるから参考にしてくれ!

① XMLHttpRequestオブジェクト生成(IE用とそれ以外で処理分岐)
② 非同期通信の時は、onreadystatechangeイベントの登録
③ openメソッドを使って、サーバへのリクエスト方法を指定
④ sendメソッドを使って、サーバへのリクエストする(データ送信)
⑤ readyStateプロパティを使ってサーバからデータを受信できたか調べる
⑥ statusプロパティを使って正常に取得できたか調べる
⑦ responseText・responseXMLプロパティを使って受信データを処理する

同期(Sync)通信



function send_sync() {
var now = new Date();
var url = "test.jsp?NOW_DATE=" + now;
var ret = false;
var request = null;

if ( window.XMLHttpRequest ) {
// Mozilla, Safari, etc
request = new XMLHttpRequest();
}
else if ( window.ActiveXObject ) {
// IE
try {
request = new ActiveXObject( "Msxml2.XMLHTTP" );
} catch (e) {
try {
request = new ActiveXObject( "Microsoft.XMLHTTP" );
} catch (e) {}
}
}
if ( !request ) {
alert( 'Giving up :( Cannot create an XMLHTTP instance' );
return;
}
request.open( "POST", url, false );
request.send("");
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
document.getElementById( "request_status" ).innerHTML = request.status;
if ( (request.readyState == 4) && (request.status == 200) ) {
request_Headers.innerHTML = request.getAllResponseHeaders();
document.getElementById( "result_post" ).innerHTML = "正常";
}
else {
document.getElementById( "result_post" ).innerHTML = "異常";
}
}



非同期(Async)通信



function send_async() {
var now = new Date();
var url = "test.jsp?NOW_DATE=" + now;
var ret = false;
var request = null;

if ( window.XMLHttpRequest ) {
// Mozilla, Safari, etc
request = new XMLHttpRequest();
}
else if ( window.ActiveXObject ) {
// IE
try {
request = new ActiveXObject( "Msxml2.XMLHTTP" );
} catch (e) {
try {
request = new ActiveXObject( "Microsoft.XMLHTTP" );
} catch (e) {}
}
}
if ( !request ) {
alert( 'Giving up :( Cannot create an XMLHTTP instance' );
return;
}
request.onreadystatechange = function() {
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
if ( request.readyState == 4 ) {
document.getElementById( "request_status" ).innerHTML = request.status;
if ( request.status == 200 ) {
request_Headers.innerHTML = request.getAllResponseHeaders();
document.getElementById( "result_post" ).innerHTML = "正常";
}
else {
document.getElementById( "result_post" ).innerHTML = "異常";
}
}
}
request.open( "POST", url, true );
request.send("");
}



出力



結果:<div id="request_result"></div>
readyState:<div id="request_readyState"></div>
status:<div id="request_status"></div>
ResponseHeaders:<div id="request_Headers"></div>




■参考サイト
IEのonreadystatechangeイベントハンドラは、1回しか反応しないんでしょうか? - Yahoo!知恵袋

木曜日, 3月 11, 2010

[Excel]相対位置にある合計範囲をコピーでリンク

▼質問
ある列のデータ範囲に相対位置で合計したい範囲が12点づつあるんだ。

その合計だけをあるセルに一列で並べたいんだ。

どうやったらできるか教えてくれ!!

▼回答
OFFSET関数とROW関数で実現できるよ!

E列に12点づつ合計したいものがあるとする。

その合計をA1からリストすると次の様になる。

A1=SUM(OFFSET($E$1,12*(ROW()-1),0*1,12,1))
A2=SUM(OFFSET($E$1,12*(ROW()-1),0*1,12,1))
A3=SUM(OFFSET($E$1,12*(ROW()-1),0*1,12,1))
:
:

A1だけコピぺして後はセルのコピーで簡単にできるよ!!

金曜日, 2月 26, 2010

[Java]JSPでサーバーOSの判定

▼質問
JSPファイルが文字化けするんだ。

Windowsで開発している環境では文字化けの対応をしたんだが

Linuxで動かすと文字化けしてしまうんだ。

そこで、JSPでサーバーOSの判定をして処理を分けたいんだ。

どうしたら、サーバーのOSを判定できるか教えてくれないか?

▼回答
次の様にやれば判定は可能だよ!

参考にしてくれ!!



if ( System.getProperty( "os.name" ).toLowerCase().indexOf("win") > -1 ) {
// Windows
}
else {
// Windows以外
}

日曜日, 2月 21, 2010

[JavaScript]ブラウザの閉じるボタン([×]ボタン)

▼質問
ブラウザの閉じるボタン([×]ボタン)を押されても

閉じない方法(キャンセルする方法)はないのかな?

▼回答
閉じない方法(キャンセルする方法)はないけど

閉じる前に自分のウィンドウを出し直す方法で

閉じないようにすることはできるよ。

サンプルを作ってみたから参考にしてくれ!!

CloseTest.htmlファイルを作成する。



<html>
<head>
<script language="javascript">
<!--
var flag = true;
-->
</script>
</head>
<body onBeforeUnload="if ( flag ) alert( 'ブラウザの[×]ボタンでは、閉じることはできません。\n[閉じる]ボタンを使用してください。' );" onUnload="if ( flag ) window.open( 'CloseTest.html' );">
<input type="button" value="閉じる" onClick="flag = false; window.close();">
</body>
</html>

火曜日, 2月 09, 2010

[VBA]IADsでの削除方法

▼質問
文字列で扱われている情報を削除したいんだ。

次ぎ様にしたんだがうまく削除されないんだ。

IADs.PutEx ADS_PROPERTY_DELETE, PropertyItem, vbNullString

どうしてかわかるかな?

▼回答
次の様にしていたらどうかな?

IADs.PutEx ADS_PROPERTY_CLEAR, PropertyItem, vbNullString

月曜日, 2月 01, 2010

[VBA]IADsで「オートメーション エラーです。エラーを特定できません」のエラーがでる

▼質問
Active Directory(Active DS Type Libray)のPutメソッドを使って

下記の関数を作ったら次のエラーが出る。



Private Sub SetIADsValue(ByVal IADs As Object,
ByVal PropertyItem As String,
ByVal PropertyValue As String)

On Error GoTo doError

IADs.Put PropertyItem, PropertyValue

Exit Sub

doError:
Debug.Print (Err.Description & "(" & Err.Number & ")")
End Sub





「オートメーション エラーです。エラーを特定できません (-2147467259)」

どうしてなんだ。

▼回答
PutメソッドのPropertyValue値の型がVariantじゃないと出るエラーなんだ。

IADs.Put PropertyItem, PropertyValue

だから、次の様にしないといけないんだ。

Private Sub SetIADsValue(ByVal IADs As Object, ByVal PropertyItem As String, ByVal PropertyValue As Variant)

木曜日, 1月 21, 2010

Active Directoryメモ

■OU:組織単位(Organizational Unit)
■Active Directoryオブジェクト:
ユーザー・オブジェクト、グループ・オブジェクト、コンピュータ・オブジェクト
■識別名(DN):
/O=Internet/DC=COM/DC=Microsoft/CN=Users/CN=James Smith
このDNは、Microsoft.comドメイン内のJames Smithユーザーオブジェクトを識別。
■O:Organization
■DC:Domain Component
■CN:Common Name
■CN=Users:Usersコンテナ
■CN=Computers:Computersコンテナ
■相対識別名(RDN):
/O=Internet/DC=COM/DC=Microsoft/CN=Users/CN=James Smith
CN=James SmithがJames SmithユーザーオブジェクトのRDN。親オブジェクトのRDNはCN=Users。
■GUID(Globally Unique Identifier):一意性が保証された 128 ビットの番号
■ユーザープリンシパル名(UPN):
ユーザー名およびユーザーオブジェクトの所属先ドメインツリーのDSN名を"略記"した名前。
microsoft.comツリー内のユーザーJames SmithのUPNは、JamesS@Microsoft.comなどとなる。
■ADSI(Active Directory Service Interfaces):
ユーザーがLDAP通信の詳細を意識せずにActive Directoryにアクセスできるようになるシンプルかつ
強力なオブジェクト指向インターフェイスを提供するAPI。


■参考サイト
Active Directory 技術概要
スクリプト一覧 : Active Directory
Active Directoryオブジェクトの識別名(DN)とは - @IT
csvdeコマンド - 管理者必見! ネットワーク・コマンド集:ITpro

木曜日, 1月 14, 2010

[JavaScript]disabledが反映しない

▼質問
ボタン操作で処理の長いものがあった時に、他のボタンなどが操作されないように

全てのコントロールをdisabledで操作不可状態にしようとしたんだけど・・・。

うまく反映しない時があるんだ。

どうしてかわかるかな?!

▼回答
setTimeout関数を使わないと駄目みたいなんだ。

そのやり方を次に示しておくから参考にしてくれ!!




function allDisabled( flag )
{

with ( document.フォーム名 ) {
for ( var i = 0 ; i < elements.length ; i++ ) {
elements[i].disabled = flag;
}
}

}

■ボタンから呼出す関数
function doMainProc()
{

document.body.style.cursor = "wait";

// disabled設定処理
allDisabled( true );

var n = setTimeout( "doSubMainProc();", 1 );

}
function doSubMainProc()
{

// 処理を記述

clearTimeout( "doSubMainProc();" );

document.body.style.cursor = "default";

// disabled設定処理
allDisabled( false );

}




■参考サイト
ボタンの非表示

水曜日, 1月 13, 2010

[JavaScript]アクセスが拒否されました

▼質問
JavaScriptで「アクセスが拒否されました。」のエラーメッセージが出る。

どうしてだ!

▼回答
イベント処理を確認してみてくれ!

二つのイベントを使って同じ関数を使っていないか調べてみてくれ!!

例えば、下記のような感じで。

onKeyPress="関数1()" onKeyUp="関数1()"

もしかすると、その関数で処理が衝突しているかもしれない!?

onLoad ページがロードされた時に発生。
onUnload ページがアンロード(他ページ移動時に発生)された時に発生。
onAbort イメージの読込みが中断された時に発生。
onError 読込みが失敗した時に発生。
onMove ウィンドウを移動した時に発生。
onResize ウィンドウがリサイズされた時に発生。
onDragDrop ファイルなどがドラッグ&ドロップされた時に発生。
onFocus フォーカスを得た時に発生。
onBlur フォーカスを失った時に発生。
onSubmit サブミットボタンが押された時に発生。
onReset リセットボタンが押された時に発生。
onClick クリックされた時に発生。
onDblClick ダブルクリックされた時に発生。
onKeyDown キーが押された時に発生。
onKeyPress キーが押されて、離れた時に発生。
onKeyUp キーが離れた時に発生。
onMouseDown マウスボタンが押された時に発生。
onMouseUp マウスボタンが離された時に発生。
onMouseOver マウスカーソルが上に来た時に発生。
onMouseOut マウスが離れた時に発生。
onMouseMove マウスが移動した時に発生。
onChange フォームの内容が変更され、フォーカスを失った時に発生。
onSelect テキストが選択された時に発生。

金曜日, 1月 01, 2010

[JavaScript]加算日付取得

▼質問
JavaScriptにVBのDateAdd関数みたいな加算日付を取得する関数はないの?

▼回答
ないよ!

同じ動作をする関数を作成したから参考にしてくれ!



function DateAdd( interval, number, date )
{
var wDate = new Date( date );
var time = 0;

try {
switch ( interval ) {
case "yyyy":
wDate = new Date( wDate.getFullYear()+number, wDate.getMonth(), wDate.getDate(), wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
break;
case "q":
wDate = new Date( wDate.getFullYear(), wDate.getMonth()+number*3, wDate.getDate(), wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
break;
case "m":
wDate = new Date( wDate.getFullYear(), wDate.getMonth()+number, wDate.getDate(), wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
var compDate = new Date( wDate.getFullYear(), wDate.getMonth()+number, 1, wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
if ( wDate.getMonth() != compDate.getMonth() ) {
wDate.setDate( 1 );
wDate.setTime( wDate.getTime() - (24*60*60*1000) );
}
break;
case "y":
case "d":
case "w":
wDate = new Date( wDate.getFullYear(), wDate.getMonth(), wDate.getDate()+number, wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
break;
case "ww":
wDate = new Date( wDate.getFullYear(), wDate.getMonth(), wDate.getDate()+number*7, wDate.getHours(), wDate.getMinutes(), wDate.getSeconds() );
break;
case "h":
wDate = new Date( wDate.getFullYear(), wDate.getMonth(), wDate.getDate(), wDate.getHours()+number, wDate.getMinutes(), wDate.getSeconds() );
break;
case "n":
wDate = new Date( wDate.getFullYear(), wDate.getMonth(), wDate.getDate(), wDate.getHours(), wDate.getMinutes()+number, wDate.getSeconds() );
break;
case "s":
wDate = new Date( wDate.getFullYear(), wDate.getMonth(), wDate.getDate(), wDate.getHours(), wDate.getMinutes(), wDate.getSeconds()+number );
break;
default:
}
} catch ( e ) {
return date;
}

wDate.setTime( wDate.getTime() + time );

return wDate;
}



■参考サイト
JavaScript による日付・時刻・時間の計算・演算のまとめ - hoge256ブログ
DateAdd 関数
javascriptで日付を加算して表示させるサンプル - 教えて!goo
DateAdd 関数 | VBScript関数リファレンス

金曜日, 12月 18, 2009

[JavaScript]引数が無効です。

▼質問
「div.style.left」「div.style.top」で次のエラーが出る。

「引数が無効です。」

どうしてか教えて!

▼回答
div.style.left = left + "px";
div.style.top = top + "px";

leftとtopの値に数値じゃなくてNaNになっていると出るエラーみたい。

NaNのチェックが要るのね。

と言うことで、JavaScriptでは

isNaN( 文字列または数値 )関数でチェックする必要があるのね。

火曜日, 12月 15, 2009

[JavaScript]selectタグでのelements.type名

▼質問
elementsのtype名でselectタグをselectでチェックしようとしたんだけど

うまくいかなかったんだ。どうしてか教えてくれ!

▼回答
selectタグのtype名は、「select-one」か「select-multiple」なんだ。

他と違うから、気をつけてくれ!




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

<script Language="javascript">
<!--

function testType()
{

with ( document.testForm ) {
for ( var i = 0 ; i < elements.length ; i++ ) {
alert( elements[i].type );
}
}

}

-->
</script>
<title></title>
</head>
<body>
<form name="testForm" method="post">

<input type="button" id="testButton" name="testButton" value="Type名称" onClick="testType();">

<input type="checkbox" id="testCheckbox" name="testCheckbox" value="testCheckbox">
<input type="file" id="testFile" name="testFile" value="testFile">
<input type="hidden" id="testHidden" name="testHidden" value="testHidden">
<input type="password" id="testPassword" name="testPassword" value="testPassword">
<input type="radio" id="testRadio" name="testRadio" value="testRadio">
<input type="reset" id="testReset" name="testReset" value="testReset">
<select id="testSelectOne" name="testSelectOne"><option value="テスト1">テスト1</option><option value="テスト2">テスト2</option><option value="テスト3">テスト3</option></select>
<select id="testSelectMultiple" name="testSelectMultiple" Multiple><option value="テスト1">テスト1</option><option value="テスト2">テスト2</option><option value="テスト3">テスト3</option></select>
<input type="submit" id="testSubmit" name="testSubmit" value="testSubmit">
<input type="text" id="testText" name="testText" value="testText">
<textarea id="testTextarea" name="testTextarea" rows="5" cols="10">テスト</textarea>

</form>

</body>
</html>


土曜日, 12月 12, 2009

[HTML]bodyタグの○○margin(余白)

▼質問
body要素にあるマージン(余白)のデフォルト値っていくつなの?

▼回答
IE(Internet Explorer)とNN(Netscape Navigator)では違うマージンとなっている。
IE:上下10px、左右15px
NN:上下左右8px

■参考サイト
ページの余白を指定する

金曜日, 12月 04, 2009

[JavaScript]HTML内の文字列(テキスト)を書換える

▼質問
HTML内の文字列(テキスト)を動的に書換えたいんだ。

何か良い方法はないか教えてくれ!

▼回答
あるよ!

P要素のタグで文字列を囲ってあげて

それに、id属性を付けてやって

次の様にアクセスすれば書き換わるよ。


<p id="id_test">テスト</p>

document.getElementById( 'id_test' ).innerHTML = "書き換わったかな?";

土曜日, 11月 21, 2009

[HTML]window.openの最前面表示

▼質問
サブウィンドウを常に最前面に表示したいんだ。

showModalDialogは使いたくないんだ。

window.openで、できる方法を教えてくれ!

▼回答
サブウィンドウのbodyタグに「onBlur="focus()"」を

追加すれば実現できるよ。

■参考サイト
サブウィンドウを常に前面に表示する - JavaScript

火曜日, 11月 17, 2009

[Web共通]HTML(JSP)のキャッシュ

▼質問
JSPで作成した画面のデータが保持されちゃうんだけど・・・。

どうしてかわかるかな?

▼回答
HTMLのキャッシュが効いているんだよ!

次のコードを追加してみてくれ!!


<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">


これで駄目なら

JSPでの変数宣言の仕方に問題があるんだ!!

次の構成要素内で変数を宣言していないか確認してくれ!


<%! %>


ここで宣言するとTomcat(サーブレット/JSPコンテナ)を再起動するまで

値が保持されるんだ。

リクエストがあった時の最初の一回だけ初期化して値を保持し続けるんだ。

■参考サイト
Javaの道:JSP(3.宣言、スクリプトレット、式)

木曜日, 11月 12, 2009

命名規約

項目 規約 種別
ボタン btn オブジェクト
ラジオボタン rdo オブジェクト
チェックボックス chk オブジェクト
コンボボックス cmb オブジェクト
リストボックス lst オブジェクト
Form項目 frm オブジェクト
Hidden項目 hdn オブジェクト
TextArea項目 tarea オブジェクト
Table内表示項目 tbl オブジェクト
bean:write項目 out オブジェクト
必須項目 ess 項目属性
~名 nm 項目属性
~番号 no 項目属性
~コード cd 項目属性
電話番号 tel 項目属性
Eメール email 項目属性
住所 add 項目属性
郵便番号 post 項目属性
金額(カンマつき) money 項目属性
小数 dec 項目属性
日付(スラッシュ区切り) date 項目属性
日付(年月日バラバラ) ddiv 項目属性
時間(コロン区切り) time 項目属性
時間(時分秒バラバラ) tdiv 項目属性
半角数字汎用 dig オブジェクト
半角英字汎用 alp オブジェクト
半角英数汎用 alnum オブジェクト
全角汎用 zen オブジェクト
全角カナ汎用 zkana オブジェクト
半角カナ汎用 hkana オブジェクト
その他入力形式 any オブジェクト

■参考サイト
peke JSP命名規約
株式会社MALTA

木曜日, 10月 01, 2009

[JavaScript]全角入力制御&数値チェック

▼質問
event.keyCodeで、キー入力をチェックして数値のみ入力させたいんだけど

全角入力の時、onKeyPressイベントでevent.keyCodeがうまくチェックできないんだ。

どうやったらできるか教えてくれ!!

▼回答
IEで全角を入力させたくなければ、style属性に「ime-mode: disabled;」と

記述すればできるよ!!

土曜日, 9月 26, 2009

[ORACLE]ORA-01659: [数字]を超えるMINEXTENTSを表領域[表領域の名前]に割当てできません。

▼質問
テーブルを作成している途中で次のエラーが出るんだ。

「ORA-01659: [数字]を超えるMINEXTENTSを表領域[表領域の名前]に割当てできません。」

どうすれば解決できるか教えてくれ!!

▼回答

SQL*Plusから、下記のSQL文を実行し表領域(データファイル)を追加さればいいんだ!

「ALTER TABLESPACE [ターゲットにする表領域の名前] ADD DATAFILE
   '[ファイルパス(例:C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.ORA)]'
SIZE [999M | 999K] AUTOEXTEND ON MAXSIZE UNLIMITE」

または、MINEXTENTS(エクステント数の最小値)、NEXT(増分値)またはPCTINCREASE(エクステント

サイズの増加率)の値を小さくして再実行する。

■参考サイト
データファイル管理の勘所


▼質問
データファイルの記憶域にある最大サイズの無制限ってどうやって指定するの?

指定しても値が選択されて32767MBが指定される。

どうして?か教えて!!

▼回答
まずは、32767MBの意味を教えよう。

db_block_size=8192の場合の上限になる。

db_block_sizeの上限値は、OSに依存するため、その値にはOSの最小ブロックサイズ(バイト単位)

の倍数(デバイス・レベルでの物理ブロック・サイズの倍数)で指定しなければならない。

Oracleデータベースリファレンスには、物理データベースの制限にdb_block_size * (2^22 - 1)が

上限と書かれている。1データ・ファイル当たりの最大数(データベース・ブロック)は、プラット

フォームによって異なるが、通常 2^22 - 1 ブロックとなっている。

なお、このサイズが大きければI/O効率(パフォーマンス)は向上するが、HDD使用効率は悪くなる。

無制限を選択すると自動的にdb_block_sizeから1データ・ファイル当たりの最大サイズが計算され

その値が最大サイズに表示される。db_block_sizeをデータベース時に変更できれば、1データ・

ファイル当たりの最大サイズを大きくすることができると思いやってみたが、駄目だった。

ブロック・サイズ(db_block_size)を2048にしたが無制限が選択されずに、8192が表示された。

次に、32768や16384を選択したら、データベースの作成と中でエラーになった。

結局、データ・ファイルを追加するしか方法はないようだ。

■参考サイト
データベース記憶域構造の管理
データベースの制限事項
Oracle基本設計


●データファイルのサイズ変更

例)'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF'を5MBに縮小

ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF' RESIZE 5M;

●データファイルの自動拡張

例)'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF'を1MB単位で10MBまでの範囲で自動拡張

ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF' AUTOEXTEND ON NEXT 1M MAXSIZE 10M;

●データファイルの場所を変更する

例)表領域のデータファイルを移動する場合

①表領域をオフラインにする
ALTER TABLESPACE [表領域の名前] OFFLINE;

②OSレベルでファイルをコピー

③定義の変更
ALTER DATABASE RENAME FILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF' TO 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZZZZZ\ZZZZZ01.DBF';

④オンラインにする
ALTER TABLESPACE [表領域の名前] ONLINE;