Chatbox com delay

4 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Chatbox com delay

Mensagem por Lord Than 16.11.14 18:48

Detalhes da dúvida


Versão do fórum : phpBB2
Nível de acesso : Administrador
Navegador usado : Mozilla Firefox
Membros afetados : Todos os membros do fórum
Problema começou : Uma semana atrás
Endereço do fórum : http://halfbloodcamp-rpg.forumeiros.com/

Descrição do problema

Olá!

Gostaria de pedir uma solução para o probleminha que está ocorrendo não só no meu fórum, mas em todos que eu jogo: o chatbox não está atualizando sozinho e está com delay para enviar mensagens.

Bom, isso está irritando todos os membros, e é realmente muito chato.

Obrigado desde já.


Última edição por Lord Than em 18.11.14 14:01, editado 1 vez(es)
avatar

Lord Than
**

Membro desde : 02/01/2014
Mensagens : 86
Pontos : 138

http://halfbloodcamp-rpg.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por Reset 16.11.14 18:57

Olá!

Isso começou a uma semana atrás certo, então antes estava de boa. Fez alguma mudança nessa semana?

Até mais,
Reset.
Reset

Reset
Super Membro

Membro desde : 30/09/2014
Mensagens : 1097
Pontos : 1474

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por Lord Than 16.11.14 19:06

Non, non, a única mudança que fiz faz muitas semanas, e é como eu disse: outros fóruns que eu jogo estão com o mesmo problema (e não é no meu computador).
avatar

Lord Than
**

Membro desde : 02/01/2014
Mensagens : 86
Pontos : 138

http://halfbloodcamp-rpg.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por Dr. 16.11.14 19:09

Informo que isso também ocorre comigo, em todos os fóruns na qual faço parte. Já reportei ao Shek, entretanto, não sabemos o motivo.
Dr.

Dr.
Hiper Membro

Membro desde : 04/02/2013
Mensagens : 3072
Pontos : 3415

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por Lord Than 16.11.14 19:13

Sabia que era algo interno. Bem, espero um pronunciamento da STAFF.
avatar

Lord Than
**

Membro desde : 02/01/2014
Mensagens : 86
Pontos : 138

http://halfbloodcamp-rpg.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por JScript 17.11.14 14:53

Lord Than escreveu:Sabia que era algo interno. Bem, espero um pronunciamento da STAFF.
Não precisa esperar a staff só pra obter essa resposta, na verdade isso é reflexo de algumas mudanças nas funções internas do ChatBox, uma delas foi a troca da função abaixo:
Código:

function ajax_refresh_chatbox(params, force) {
    if (params == '' || params == undefined) {
        params = '?achives=0'
    }
    if (window.XMLHttpRequest) {
        var http_request = new XMLHttpRequest()
    } else if (window.ActiveXObject) {
        var http_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    http_request.onreadystatechange = function() {
        if (http_request.readyState == 4 && http_request.status == 200) {
            var parsed_text = http_request.responseText;
            eval(parsed_text);
            if (chatbox_last_update > chatbox_updated || force) {
                if (document.getElementById('chatbox').innerHTML != null) {
                    if (chatbox_messages_old != chatbox_messages) {
                        document.getElementById('chatbox').innerHTML = chatbox_messages;
                        chatbox_messages_old = chatbox_messages;
                        document.getElementById('chatbox').scrollTop = document.getElementById('chatbox').scrollHeight + document.getElementById('chatbox').offsetHeight;
                        document.getElementById('chatbox').scrollTop = 999999
                    }
                }
                if (document.getElementById('chatbox_members').innerHTML != null) document.getElementById('chatbox_members').innerHTML = chatbox_memberlist;
                chatbox_updated = chatbox_last_update
            }
        }
    };
    http_request.open('GET', '/chatbox/chatbox_actions.forum?achives=1' + params + '&mode=refresh', true);
    http_request.send(null)
}

Por esta outra:
Código:

function ajax_refresh_chatbox(params, force) {
    if (params == '' || params == undefined) {
        params = '?achives=0'
    }
    $.ajax({
        url: '/chatbox/chatbox_actions.forum' + params + '&mode=refresh',
        type: 'get',
        dataType: 'script',
        success: function () {
            if ($('#chatbox').length) {
                if (chatbox_messages_old != chatbox_messages) {
                    $('#chatbox').html(chatbox_messages);
                    chatbox_messages_old = chatbox_messages;
                    $('#chatbox').animate({
                        scrollTop: $('#chatbox').prop('scrollHeight')
                    })
                }
            }
            if ($('#chatbox_members').length) $('#chatbox_members').html(chatbox_memberlist);
            chatbox_updated = chatbox_last_update
        },
    })
}

O que eu pude observar é que basicamente estão trocando chamadas puramente em JavaScript por jQuery, lembrando que jQuery é fácil, menos código porém é mais lento do que JavaScript puro!

Essa e outras funções fazem parte do arquivo chatbox.js

JS
JScript

JScript
Super Membro

Membro desde : 15/03/2013
Mensagens : 1449
Pontos : 1901

http://jscript.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por JScript 17.11.14 19:12

Bom, eu não consegui editar a minha mensagem acima, mas aqui está uma solução temporária que resolve o problema!
O código é bem simples e só faz a substituição da função atual que está em jQuery pela anterior somente em JavaScript puro...

Basta adicionar como um novo JavaScript com investimento somente no índice pois o ChatBox só aparece no índice mesmo...:
Código:

 // Redefine function in frm_lang_xx.js, by JScript Brasil at live dot com!
 function insertChatBox(chatbox_id, chatbox_url) {
    return insertChatBoxNew(chatbox_id, chatbox_url);
 }

 function insertChatBoxNew(chatbox_id, chatbox_url) {
    document.getElementById(chatbox_id).innerHTML = '<iframe src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="no" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0"></iframe>';

    frames["frame_chatbox"].onload = function() {
        // Redefine function in chatbox7.js, by JScript Brasil at live dot com!
        var JS = document.getElementById("frame_chatbox").contentWindow.document.createElement("script");
        JS.type = "text/javascript";
        JS.innerHTML =
          'chatbox_messages_old = "";' +
            'function ajax_refresh_chatbox(params, force) {' +
            '    if (params == "" || params == undefined) {' +
            '        params = "?achives=0"' +
            '    }' +
          '     if (force == "" || force == undefined) {' +
          '       force = 1;' +
          '    }' +
            '    if (window.XMLHttpRequest) {' +
            '        var http_request = new XMLHttpRequest()' +
            '    } else if (window.ActiveXObject) {' +
            '        var http_request = new ActiveXObject("Microsoft.XMLHTTP")' +
            '    }' +
            '    http_request.onreadystatechange = function() {' +
            '        if (http_request.readyState == 4 && http_request.status == 200) {' +
            '            var parsed_text = http_request.responseText;' +
            '            eval(parsed_text);' +
            '            if (chatbox_last_update > chatbox_updated || force) {' +
            '                if (document.getElementById("chatbox").innerHTML != null) {' +
            '                    if (chatbox_messages_old != chatbox_messages) {' +
            '                        document.getElementById("chatbox").innerHTML = chatbox_messages;' +
            '                        chatbox_messages_old = chatbox_messages;' +
            '                        document.getElementById("chatbox").scrollTop = document.getElementById("chatbox").scrollHeight + document.getElementById("chatbox").offsetHeight;' +
            '                        document.getElementById("chatbox").scrollTop = 999999' +
            '                    }' +
            '                }' +
            '                if (document.getElementById("chatbox_members").innerHTML != null) document.getElementById("chatbox_members").innerHTML = chatbox_memberlist;' +
            '                chatbox_updated = chatbox_last_update' +
            '            }' +
            '        }' +
            '    };' +
            '     http_request.open("GET", "/chatbox/chatbox_actions.forum" + params + "&mode=refresh", true);' +
            '     http_request.send(null);' +
            '}' +
          'number_of_refresh = 0;';
        document.getElementById("frame_chatbox").contentWindow.document.getElementsByTagName("head")[0].appendChild(JS);
    };
 }
Mas atenção: O código acima só irá surtir efeito em ChatBox que não tenha outro arquivo JS de personalização, em outras palavras: Só para Chats sem código JS que trocam a tag < object > por < iframe >!
Pois este código já faz essa conversão de tags, mas nada o impedirá de mesclar os códigos em um só...

E lembrem-se: Apesar de resolver o problema aqui relatado, se forem usar o código, fiquem atentos aos anúncios sobre a solução vinda dos técnicos!

JS
JScript

JScript
Super Membro

Membro desde : 15/03/2013
Mensagens : 1449
Pontos : 1901

http://jscript.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Chatbox com delay

Mensagem por Reset 22.11.14 17:54

Olá!

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Tópico movido de "Outras questões" para "Questões resolvidas"
Reset

Reset
Super Membro

Membro desde : 30/09/2014
Mensagens : 1097
Pontos : 1474

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos