4

私がやりたいことは、コンテンツを継続的に更新する Web ページです。(私の場合は 2 秒ごとに更新されます) 新しいコンテンツは上書きされるのではなく、古いコンテンツに追加されます。

ここに私が持っているコードがあります:

var msg_list = new Array(
    "<message>Hello, Clare</message>", "<message>Hello,Lily</message>",
    "<message>Hello, Kevin</message>", "<message>Hello, Bill</message>"
);
var number = 0;
function send_msg()
{
 document.write(number + " " + msg_list[number%4]+'<br/>');
 number = number + 1;
}
var my_interval = setInterval('send_msg()', 2000); 

ただし、IE と Firefox の両方で、1 行だけ出力され、ページはそれ以上更新されません。興味深いことに、Chrome では行が継続的に出力されています。これが私が探しているものです。

このリンクに従ってページが読み込まれると、 document.write() が呼び出されることを私は知っています。したがって、ウェブページを継続的に更新する方法ではありません。私がやりたいことを達成するための最良の方法は何ですか?

Javascript 初心者です。ありがとうございました。

リリー

4

5 に答える 5

2

次のように、divまたはその他のコンテナーがあります。

<div id="msgDiv"></div>

次に、次のように を使用して書き込みます.innerHTML

var msg_list = new Array(
    "<message>Hello, Clare</message>", "<message>Hello,Lily</message>",
    "<message>Hello, Kevin</message>", "<message>Hello, Bill</message>"
);
var number = 0;
function send_msg()
{
    document.getElementById("msgDiv").innerHTML += number + " " + msg_list[number%4]+'<br/>';
    number++;
}
var my_interval = setInterval(send_msg, 2000); 

ここでこれの実例を見ることができます

于 2010-04-28T22:39:20.473 に答える
1

これは、DOM プログラミングを少し学ぶ絶好の機会です。

DOM を使用してページを更新すると、単純に HTML を連結するよりもオーバーヘッドが少なくなります。更新を入れたいノードを見つけ、その後の追加ごとに appendChild を実行します。

于 2010-04-28T23:09:47.847 に答える
1

innerHTMLプロパティに追加できます。

var number = 0;
function send_msg()
{
    document.getElementById('console').innerHTML += (number + " " + msg_list[number%4]+'<br/>');
    number = number + 1;
}

consoleこのコードは、次のようなID を持つ要素にメッセージを追加します。

<div id="console"></div>

ちなみに、setInterval文字列で呼び出すのは悪い習慣です。

代わりに、次のように関数自体を渡します。

var my_interval = setInterval(send_msg, 2000); 
于 2010-04-28T22:40:06.687 に答える
1

まず、jQuery ライブラリを調べます。これにより、多くの痛みが軽減されます。

あなたがしたいことは、例えば次を使用して、挿入された行をテーブルに保持することです:

$('table tbody').append('<tr><td>some value</td></tr>');
于 2010-04-28T22:39:02.070 に答える
0

この質問への回答が役立つ場合があります: コマンドライン デーモンを Web 化する簡単な方法は何ですか?

于 2010-04-28T22:35:49.203 に答える