- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:無限ループから脱出不可能です)
無限ループから脱出不可能な問題発生
このQ&Aのポイント
- オフラインでは正常に作動するコードが、FC2.comにアップロードした際に画面がフリーズし、無限ループに陥ってしまう問題が発生しています。
- 解決策をお教えいただきたいです。
- URL: http://nonprofit4excellence.web.fc2.com/i/images/d002.html
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 おそらくの回答で申し訳ないのですが、 if ( i > max )で1が1000を越したらGoNext()を実行し、location.hrefでページ遷移を実行しています。 しかしsetInterval()を7ミリsecという短期間で繰り返しているため、location.hrefの処理が完了しようとしている間もwinScroll()を短期間で繰り返し実行しています。 1001の状態で繰り返されるため何回もlocation.hrefが実行されているような状態ではないでしょうか。 (ローカルだとレスポンスが早いため実行できているように見えるが、実際のインターネット上だとレスポンスがローカルよりかかるため) 以下のようにすれば良いと思います。 var timer; var max=1000; var i=1; function winScroll(){ if ( i > max ) { clearInterval ( timer ); GoNext() ; } else { scroll(i,0);} i++; } function GoNext() { location.href = "d003.html"; } <body onload="timer=setInterval('winScroll()',7)"> setIntervalで設定した繰り返し処理を、条件が達した時に解除します。 これにより、1000を越した場合、繰り返し処理が停止し、その後ページ遷移が呼ばれます。
その他の回答 (1)
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.1
function winScroll(){ ここがループしていないから、 else {scroll(i,0); } で止まっているんじゃないですか?
補足
同じコードが、アップロードする前の段階では、自分のPCでは IEでもFirefox でも正常に作動しております。