わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

座長のjsで考えたこと

座長のjsを少し修正しました.色合いを変更し,ベルが鳴るごとに文字色を変えるようにしました.onresizeというのを知りまして,ブラウザウィンドウのサイズが変われば,動的に数字のフォントサイズを変えるようにしました.
あとは,計時中にEscキーを押しても戻るようにすれば,思い描いていたものは完成です.安定稼働しているサイトに移すことにします.
さて,この「座長のjs」を作るにあたって,考えたことを書いておきます.

  • 昨日書いたとおり,「学会タイマー」にせよ「座長の友」にせよ,Windows95/98時代のアプリケーションで,インタフェースがどうも好きになれません.今年2月に,学生発表の計時のため,「座長の友」を使っていましたが,計時を始めると画面モードが変わる*1というのも,嬉しくありませんでした.時間管理やベルを鳴らすというのは,ブラウザでもできるだろうと考え,またGoogleを軽く眺めた限りで期待するWebアプリケーションが見当たらなかったので,作ることにしました.
  • HTMLファイルを書いていく前にいきながら,技術調査をしました.今回役に立ったのは:
  • 時間管理は,上のストップウォッチのやりかたを使いました.ただ,setIntervalの第2引数について,1ミリ秒というのは短すぎで,100ミリ秒にしました.1ミリ秒,つまり1秒につき1000回の割り込みがあっても,CPU負荷はかからないのはすごいのですが…まあおそらく,実際には毎秒1000回も割り込みが起こらない(ブラウザ内でほどほどにしている)のだろうなあと想像します.
  • 時間についてもう少し.100ミリ秒ごとに割り込みを発生させるとして,その回数を数えて,10で割れば経過の秒数とするのでは,実際にブラウザがタイマ割り込みを取得できなかったときに,回数が増えず,実時間よりも経過時間が小さくなるという可能性がありました.本物の時計だと15分を過ぎているのに13分しか経っていない,という危惧です.そこで,開始または再開のボタンを押した時刻を記録しておき,割り込みがあった時刻との差を求めて,経過時間としました.ベルを鳴らすと,ときどき,時間の表示や進み方が一時的にイレギュラーになることもありますが,長期的にはうまくいっているようです.
  • Firefox2とIE7で動作確認をしました.OperaSafariは…どなたかご教示ください.
  • ベルを鳴らすタイミングは,「予鈴1」「予鈴2」「発表終了」「質疑終了」の4つにしました.学内発表にせよ学会発表にせよ,私が普段見聞きするにあたっては,予鈴2は使わないのですが,まあこれは「座長の友」に合わせました.それぞれ鳴らさないようにできます.「座長の友」は分単位で設定しますが,「座長のjs」では,何度もテストができるよう,秒単位で設定できるようにしています.そうだ,変数の値一つで,秒指定のフォームは出さないようにしておかないと.
  • 設定は,ブラウザ上でできることは少なめにして,細かいことはindex.htmlの中の変数などを変えてもらうことにしました.一つのファイルにCSSJavaScriptのコードを埋め込んでおり,行儀の悪いコードですが,ここは可搬性を重視しました.
  • ベルのファイル名は,「座長の友」(zacho100.lzh)を解凍して作られるwavファイルに合わせました.このwavファイルと,「座長のjs」のindex.htmlを同じフォルダに置いて,再生すれば,ベルが鳴ります.「座長の友」の再配布の条件もありますので,デモページでは,wavファイルを置いていません.
  • 時間が来なくても,ベルを鳴らすためのボタンを配置しました.学会発表で使うときに,「○分でベルが鳴ります」と言いながら,そのボタンを押せば,デモと動作確認ができるということです.

*1:座長しながら,PCを使って内職ができない!