• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:無限ループ)

無限ループ対策とは?

このQ&Aのポイント
  • 画面リサイズ時の無限ループについての問題を解決したい。
  • 質問者は、下記のソースコードで画面リサイズ時に無限ループが発生することに困っている。
  • 質問者は、IE8で画面リサイズ時に無限ループが発生してしまう問題があるため、どの部分が問題か教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

通常のブラウザはリサイズすればレイアウトし直すと思いますので、何をなさりたいのかよくわかりませんが… HTMLのload時に条件判定でdisp()が実行されるような状態の時は無限ループになる可能性があります。 個々のブラウザの挙動を確認してはいませんが、location.href = location.href;でリロードされるようなブラウザであれば、ロードする毎に再ロードすることになるのでは? 簡略化すれば以下のスクリプトとほぼ同じになるので…  window.onload = disp; load時のイベント処理として実行するのをやめれば、とりあえず無限ループにはならないと思いますが?(リサイズ時のみ動作するようにするという意味です) しかしながら、そもそもが再読み込みする必要が無いのではないかと思いますけれど…

angelinaane
質問者

補足

回答ありがとうございます。 カルーセルスライダーを使っていたのですが、 画面を小さくしたときにした画面処理が 画面を大きく戻したときにどうしても元に戻らず 強制的にリロードして戻していました。 で、なぜかIE8だけ無限ループになっていました。 おっしゃるとおり load時にはいりませんね。 ただ、load時を外しても 画面スクロールのたびに リロードが走ってしまい、 ページ下に行けない状況になってしまいました。 IE8のみリロードしないという逃げ方しかないのでしょうか?

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

ANo1です。 >画面スクロールのたびにリロードが走ってしまい~ 普通はスクロールでリサイズのイベントが発生するとは思えないのですが…? どこか他のところで、スクロールイベントが発生した際にdisp関数を呼び出している可能性が高いのではないかと想像しますが、そのようなことはありませんか? >カルーセルスライダーを使っていたのですが、 >画面を小さくしたときにした画面処理が >画面を大きく戻したときにどうしても元に戻らず >強制的にリロードして戻していました どのようなライブラリか不明ですが、内部の変数等の値がそのまま残っている可能性が高いと思います。 もしもユーザ用にAPIが解放されているのなら、リサイズ時に再初期化してあげれば、リロードする必要がなさそうに思いますが… あるいは自作のものなら、そのように改造するか表示の際に都度サイズを取得するような方法に変えてあげれば、そのままでリサイズに対応できるようになると思います。

angelinaane
質問者

お礼

お返事遅くなりました。 ご回答いただきましてありがとうございました。 ちょっと、仕様から見直しということになってしまいました。 またお願いいたします。

関連するQ&A

専門家に質問してみよう