Javascript чат, показывающий одни и те же сообщения несколько раз - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь заставить работать чат, который является копией вставки из учебника. По какой-то причине функция загрузки чата запускается дважды каждый раз, когда должна запускаться один раз! Это убивает меня, я не могу понять, что не так.

Вот мой чат-копия: http://www.releazed.com/chat/

вот полный исходный код: http://myslimchatroom.wikidot.com/

Я бы подумал, что это что-то связанное с last_message_id, но я его отлаживал, и он, кажется, знает правильный ...

Пожалуйста, помогите: (

Ответы [ 5 ]

0 голосов
/ 08 сентября 2011

исправил проблему, просто удалив одну из самых важных частей JS eval(result); lol ... я думаю, jquery делает это самостоятельно? Ну, это работает ...

0 голосов
/ 08 сентября 2011

В вашем коде оператор if, чтобы увидеть, загружается ли уже процесс, почему-то отсутствует в функции Load (). (Это было хорошо в том месте, откуда вы скопировали, я не знаю, что пошло не так):

function Load() {
    // Check whether we can download the message. This is done to ensure that we do not start the download again, if the old download is not over yet.
    if(!load_in_process) //this line was missing
    { //also missing
            load_in_process = true; // Loading started
            // refer the request to the server, which returns us javascript
            $.post("ajax.php",
            {
                  act: "load", // point out that it is downloading messages
                  last: last_message_id, // pass number of the last message that the user was last boot
                  rand: (new Date()).getTime()
            },
               function (result) { // this function as a parameter is passed javascript code, which we must comply
                    eval(result); // execute script from the server
                    $(".chat").scrollTop($(".chat").get(0).scrollHeight); // scrolls the message down
                    load_in_process = false; // say that downloading is over, we can now start a new download
            });
   } //also missing
}
0 голосов
/ 07 сентября 2011

Попробуй исправить свой php код с

 $js .= "last_message_id = $last_message_id;";

до

 $js .= "last_message_id = $last_message_id + 1;";
0 голосов
/ 08 сентября 2011

Это может сработать, в функции Load () измените команду $ post на:

              $.post("ajax.php",
        {
              act: "load", // point out that it is downloading messages
              last: last_message_id, // pass number of the last message that the user was last boot
              rand: (new Date()).getTime()
        },
           function (result) { // this function as a parameter is passed javascript code, which we must comply
                eval(result); // execute script from the server
                $(".chat").scrollTop($(".chat").get(0).scrollHeight); // scrolls the message down
                load_in_process = false; // say that downloading is over, we can now start a new download
        }, 
       "text");
0 голосов
/ 07 сентября 2011

заменить Загрузить )

с конца отправки с функцией, которая просто пишет на экран

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...