• 締切済み

Ajaxでwebページの一部をリロード

Ajax超初心者です。 http://okwave.jp/qa/q7061328.html これのベストアンサーについてなんですけど、 <script type="text/javascript"> function update(){ var xhr = new XMLHttpRequest(); xhr.open("GET", "/foo.php"); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("foo").innerHTML = xhr.responseText; xhr = null; } } xhr.send(null); } </script> これって例えば「1分後に自動的にリロードする」というような指示は どこを変更して指示したらいいんでしょうか。 もしこの方法ではそういう指定ができないのなら、 指定できる方法を教えてください。

みんなの回答

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.4

#2、3です。 「Ajax超初心者です。」と書くくらいなら、人のコードを見るよりも先に「JavaScript」と「Ajax」はどうやって非同期通信をしているのかを調べましょう。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.3

#2です。 質問文にあるコードを変更する前に、質問文のコードを理解する方が先のように思います。 質問文のコードは、「upload()を呼び出すと、Ajax非同期通信を利用してページの内容を書き換える処理」を定義しています。 これを実行させないと(upload()を呼び出さないと)書き換わりません。 (今のままでは、何もしません。) 一番簡単だと思うのは、「<body>」タグでonloadで呼び出す。そのときに#1さんの回答のようにする。 だと思いますが…。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

質問文に記載されているのは、update()を「定義」しているところです。 実際には、別のところでupdate()を呼びだしているはずです。 そこを、#1さんの回答に合わせて変更しましょう。

-web-
質問者

補足

だめだ、全然解りません; 質問文に記載したものを<head></head.>内に記述して、 自動更新したいところを <div id="foo"></div> ではさんだだけなのですが、 update()を呼びだしている場所とかわからないです><

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

setInterval() か、 対象ブラウザの関係で使えないなら代わりに setTimeout() を使いましょう。 (1) setInterval() を使う場合 ・update() を呼び出しているところを以下のように変える  setInterval('update()', 60 * 1000); (2) setTimeout() を使う場合 ・update() を呼び出しているところを以下のように変える  setTimeout('update()', 60 * 1000); ・update() の最後に以下を追加する  setTimeout('update()', 60 * 1000);

-web-
質問者

補足

>update() を呼び出しているところを すみません、これって「update()」のところってことですか? update() を setInterval('update()', 60 * 1000); に変えればいいんですか?

関連するQ&A