評価用に作ってみた、リロードを一時停止する処理。METAタグを使ったリロードよりも画面がチカチカするので、これ自体は不採用になったけど、状況によっては使えるかもしれないのでメモメモ。
まずはヘッダに以下のような感じで記述。
<script type="text/JavaScript">
var id;
function reload( KBN ){
if( KBN == "reload" ){
id = setTimeout("location.reload()", 1000);
} else if( KBN == "kick" ){
location.reload();
} else {
clearTimeout( id );
}
}
</script>
通常は自動更新をかけているので、bodyタグにonLoad()の記述。
<body class="dsp" onLoad='reload("reload")'>
自動再表示のチェックボックスには、以下の記述。
<input type="checkbox" name="flg_reload" value="Y" onClick='reload("kick");'>自動再表示
フォーカスが当たっている間、処理を止めたいテキストボックスなどには、以下の記述。
<input name="reload_time" size="3" maxlength="3" value="10" onFocus='reload("");' onBlur='reload("kick")'>秒間隔で更新
もっといい方法があるかもしれませんが、咄嗟に思いついたやり方がこれ。実際この処理を使った画面はC言語で作ったCGIだったので、Script内の時間や、更新間隔のテキストボックスの値などはベタ書きではないです。
もうちょっとチカチカ(更新のときの点滅)がなければ、いろいろと使えそうなのになぁ……。
コメント