Opera9.5β2でsetTimeout, setIntervalの第二引数(delay)が機能せず
Opera9.5の中の人にはびっくりなタイトルだと思いますが、これがメインの開発マシンで起きていて困ってます。
Opera9.5のビルド番号は9945,日本語版,WinXPです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Opera9.5beta - setTimeout test</title> </head> <body> <table> <tr><th>-</th><th>5sec</th><th>10sec</th><th>20sec</th></tr> <tr><th>setTimeout</th><td id="result1"></td><td id="result2"></td><td id="result3"></td></tr> <tr><th>setInterval</th><td id="result4"></td><td id="result5"></td><td id="result6"></td></tr> </table> <script> function timeout1() { document.getElementById("result1").innerHTML = "o"; } function timeout2() { document.getElementById("result2").innerHTML = "o"; } function timeout3() { document.getElementById("result3").innerHTML = "o"; } function interval1() { document.getElementById("result4").innerHTML = "o"; } function interval2() { document.getElementById("result5").innerHTML = "o"; } function interval3() { document.getElementById("result6").innerHTML = "o"; } window.onload = function() { var tmid1, tmid2, tmid3, tmid4, tmid5, tmid6; tmid1 = window.setTimeout(timeout1, 5000); tmid2 = window.setTimeout(timeout2, 10000); tmid3 = window.setTimeout(timeout3, 20000); tmid4 = window.setInterval(interval1, 5000); tmid5 = window.setInterval(interval2, 10000); tmid6 = window.setInterval(interval3, 20000); window.status = tmid1 + ", " + tmid2 + ", " + tmid3 } </script> </body> </html>
上記のコードは、5秒,10秒,20秒後に、"o"を計6個表示する簡単なテストコードです。問題のOpera9.5では1秒も経たずに"o"が6個表示されてしまいます。
先日の日記(JSONPが失敗する)の原因のひとつがコレです。(レスポンスが帰ってくる前にタイムアウト(=失敗)する)
身近なPC3台(VistaBasic x 1,XPHome x 2)でも試してみましたが、他のPCでは発生しませんでしたし、ネット上にも同様の現象の記載は探せませんでした。
これ以外にも、気になるところを書いてみると
・モーダルダイアログの反応が鈍い(クローズボタンをクリックしてから実際にクローズするまで1〜2秒かかる)
・タブ1つだけで動作させると、スクリプトのタイミングがその都度変わる(引っかかるような動き)。2つ以上のタブでページを開いていれば割と安定するが、引っかかりが穏やかになるだけで現象そのものは変わらない。
・再起動しても現象は変わらず。
・設定はほぼデフォルト, 標準のフォントを"メイリオ"に変更したぐらい。
・Developer ConsoleとDOM SnapShotも入れていたはずだが、いつからかまったく動作せず。[メニュー]-[ウィジェット]-[ウィジェット設定]の画面にもそれらは表示されていない。
・Dragonflyが"Loading Opera Dragonfly"のまま遷移せず
この日記を書いたら、Operaにバグレポートを出してみたいと思います。