重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

教えてください!!!
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></s …
<script>
var reload = function() {
\$.ajax({
url: 'chat.cgi?id=$id',
dataType: 'text',
success: function(data) {
\$('#text').html(data);
},
error: function(data) {
//alert('error');
}
});
}
setTimeout(reload, 100);
setInterval(reload, 5000);
</script>

このソースで
入った時は、即処理するよう0.1秒
その後は、5秒おきに

<div id="text"></div>

この要素の中に、chat.cgiの中身が入るようにしております
※1アラートはコメントアウトしました
※2「\$」はcgi内の記述のせいです

質問1
書き込むまでは、画面がトップに戻ったりすることなく
画面は動くことなく、更新されていくのですが、
書込をした後、locationでそのページに戻るときは、トップでも
いいのですが、その後5秒おきに更新の際、トップへ戻ってしまうときがあります。

これの原因がわかりません・・・なぜでしょうか?

また上のことを踏まえた上で
質問2
setTimeout(reload, 100);
setInterval(reload, 5000);
この部分をn秒おきではなく、
chatのログが保存された日付で更新といったことは、できますでしょうか?
できるようなら、やり方を教えてほしいです(●´ω`●)

質問者からの補足コメント

  • 質問1の画面の動く際なのですが、
    共通点として、画像があるときによく動きます

      補足日時:2017/11/09 13:32

A 回答 (1件)

JavaScriptの初期化が行われなかったためでしょう


明示的に処理してください
    • good
    • 0
この回答へのお礼

こんにちわ
御回答ありがとうございます。

明示的にとは、どのように書くのでしょうか・・・?

初期化

var reload;

これしかわからない・・・スクリプトを分けるとかですか・・・?

お礼日時:2017/11/09 08:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!