以前JavaScriptが非同期であるということを書きましたので、この言語がpauseという動作に対して相性が悪いことは知っていましたが、想像以上に厄介だと感じています。Promiseを以前導入しましたが、どうもそれだけではイベント進行の一時停止は手強いと感じて前回別のjQueryを探したのですが、昨日良さそうだと思ったjQuery.pauseはアニメーションに対しての処理だということが分かり、これではイカンとなりました。
そして今日粘り強くpauseボタンの仕組みを検索していたのですが、これは検索してもなかなか出てこない。setTimeoutあるいはsetIntervalが「停止」の機能は備えていても、「一時停止」の機能を備えていないのがそもそもの問題となっているのです。
となると、現状考えられるのはイベントの自動進行にsetTimeoutやsetIntervalを使わずに実現させるという解決策が一つとして考えられます。具体例としては、Dateオブジェクトを使って秒単位で判定をさせ、基準の時間から指定の秒数が経過した時点で関数を読み込むように仕組めばと思います。
しかし、この仕組み、言葉で書くと簡単ですが実際に書くとなると私の想像の段階でもそれなりに大掛かりになることが分かっています。プログラムを含めてシステムというものは大掛かりになるほど予期せぬことが起こるし運用も大変になるということは人生経験から知っているので、大掛かりな仕組みを作るというのは極力避けるべき選択なのです。
以上pauseの困難さについて書きましたが、さすがにここは避けて通るわけにはいかない部分です。踏ん張りどころかなあ、という勘がはたらいております。
0 件のコメント:
コメントを投稿