プロが教えるわが家の防犯対策術!

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分後に自動的にリロードする」というような指示は
どこを変更して指示したらいいんでしょうか。

もしこの方法ではそういう指定ができないのなら、
指定できる方法を教えてください。

A 回答 (4件)

#2、3です。



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

#2です。



質問文にあるコードを変更する前に、質問文のコードを理解する方が先のように思います。

質問文のコードは、「upload()を呼び出すと、Ajax非同期通信を利用してページの内容を書き換える処理」を定義しています。

これを実行させないと(upload()を呼び出さないと)書き換わりません。
(今のままでは、何もしません。)

一番簡単だと思うのは、「<body>」タグでonloadで呼び出す。そのときに#1さんの回答のようにする。

だと思いますが…。
    • good
    • 0

質問文に記載されているのは、update()を「定義」しているところです。



実際には、別のところでupdate()を呼びだしているはずです。

そこを、#1さんの回答に合わせて変更しましょう。

この回答への補足

だめだ、全然解りません;

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

補足日時:2011/10/16 07:59
    • good
    • 0

setInterval() か、 対象ブラウザの関係で使えないなら代わりに setTimeout() を使いましょう。



(1) setInterval() を使う場合
・update() を呼び出しているところを以下のように変える
 setInterval('update()', 60 * 1000);

(2) setTimeout() を使う場合
・update() を呼び出しているところを以下のように変える
 setTimeout('update()', 60 * 1000);
・update() の最後に以下を追加する
 setTimeout('update()', 60 * 1000);

この回答への補足

>update() を呼び出しているところを

すみません、これって「update()」のところってことですか?

update()

setInterval('update()', 60 * 1000);
に変えればいいんですか?

補足日時:2011/10/16 07:22
    • good
    • 0

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