夏休みに、伊勢、名古屋に行ってきた。

名古屋では名古屋城を見学。

展望フロアに行く途中の階段で、一階から吹き抜けになっていて階段から見下ろせる。

この光景は、他のお城ではなかった。


Exerionのブログ(仮)-階段から見下ろす

replaceAllだけでは、改行コード(\n)とタブコード(\t)が置換できなかった。

変換対象文字列

シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n

1.replaceAllだけの場合(希望通り置換されない)

String result = "";

str.replaceAll("\\n","@");

System.out.println("\\n replase:"+str);

//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n

str.replaceAll("\\t","@");

System.out.println("\\t replase:"+str);
//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n

result = str;

2.PatternとMatcherクラスを利用した置換処理(成功)

String result = "";

String regex = "\\n";
Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(str);
str = m.replaceAll("@");

System.out.println("\\n replase:"+str);
//この時 シミュレーション1 #Missing@シミュレーション2 #Missing@シミュレーション3 #Missing@

String regex2 = "\\t";
Pattern p2 = Pattern.compile(regex2);

Matcher m2 = p2.matcher(str);
str = m2.replaceAll("@");

//この時 シミュレーション1@#Missing@シミュレーション2@#Missing@シミュレーション3@#Missing@

System.out.println("\\t replase:"+str);

result = str;

理由を後で調べておきたい。

ボタン2度押し禁止で非活性の制御を実装したのだが、

非活性がされない現象がおきた。

この画面は、以下の動作をする

ボタンクリック - 非活性 - データ更新 - 画面を閉じる

よく見ると、非活性化のあとに実装した処理が終わる直前

に非活性になって画面を閉じているみたいであった。

どうも、非活性化が完了する前に次のちょっと重い処理が

実行されるのが原因のようだ。

そこで、非活性処理の直後の処理を遅延させることにした。

1.非活性化の処理を別Function化

2ボタンクリックで非活性化処理のFunction(execBtnYes())を呼び出す

3.上記のFunctionで非活性化処理後に 非活性化処理以外

になったFunction(btnYesClick)を setTimeout関数で1秒遅延させて実行

こんな感じで対応できた。

シーケンシャルで実行されるのに謎です。

ブラウザのレンダリングの仕組み・処理速度にようるのだろうか



setTimeout("関数", 遅延時間(ms));



function execBtnYes(){

//2度押し禁止
var elebtnYes=document.getElementById("btnYes");
elebtnYes.disabled = true;
var elebtnNo=document.getElementById("btnNo");
elebtnNo.disabled = true;
//本処理の呼び出し
setTimeout("btnYesClick()", 1000);

}

function btnYesClick(){
 //本処理
 //DBやEssBaseのデータ等の更新処理
}