1

0.1 秒ごとに自動更新するチャットがありますが、そもそも更新や読み込みに時間がかかることがあります。

コード:

html ドキュメントの htdocs の前に Body OnLoad スクリプトがあります。

<body onload="chat_load()">

これは私のJavaスクリプトです。

<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script type='text/javascript'>
var updateTime = 1;
var running = false;

var counter = 0;

function chat_update(){
    if(counter = updateTime)
        chat_load();
    else
        counter ++;

    if (running == true)
        setTimeout("chat_update", 100);
}

function chat_load(){
    $.post('chat_submit.php', {stage:"load"}, function(data){
        $('#chatbox #primary #window').html( data );
        counter = 0;
        setTimeout("chat_load();", 100*updateTime);

    });
}

function chat_send(){
    var text = document.getElementById("chat_text").value;

        document.getElementById("chat_text").value = '';
    $.post('chat_submit.php', {stage:"send", text:text}, function(data){

        if(data == "good")
            chat_load();
        else
            alert("Please enter a message.");


    });

}
</script>

chat_submit.php

if($stage == "load"){

$query = mysql_query("SELECT * FROM chat_chats ORDER BY time DESC");
if(mysql_num_rows($query) >0){
    while($row = mysql_fetch_assoc($query)){

        $user1 = $row['user'];
        $date = $row['time'];
        $content = $row['text'];

        if($user == $user1){
            $num = 2;
        }else{
            $num = 1;
        }


        echo '<div class="list'.$num.'">';
            echo '<b>'.$user1.'</b> <font color="red"><i>'.$date.'</i></font> <br> '.$content;
        echo "</div>";



    }
}
else
    echo "No messages found be the first.";

}

**

私が抱えている問題は、最初のページの読み込み時に更新されないか、読み込まれない場合があることです。誰かが理由を知っていますか?私はまだ自動更新をかなり速くしたいと思っていますが、今のところ、かなり遅れて失敗しているようです。コードにエラーはありますか、または使用できるより良い機能はありますか?

**

ありがとう。

4

2 に答える 2

1

JavaScriptコードをラップする必要があります

$(function() {
   // code here
});

これは$(document).ready()の jQuery 省略形です。そして、Javascript の最後にある<body onload="chat_load()">and 呼び出しを削除します。chat_load()

于 2013-11-06T22:29:04.890 に答える