Chatbox com delay
4 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Outras questões :: Questões resolvidas: Outras questões
Página 1 de 1
Chatbox com delay
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)
Re: Chatbox com delay
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.
Isso começou a uma semana atrás certo, então antes estava de boa. Fez alguma mudança nessa semana?
Até mais,
Reset.
Re: Chatbox com delay
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).
Re: Chatbox com delay
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.
Re: Chatbox com delay
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:Lord Than escreveu:Sabia que era algo interno. Bem, espero um pronunciamento da STAFF.
- 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
Re: Chatbox com delay
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...:
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
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);
};
}
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
Re: Chatbox com delay
Olá!
Tópico movido de "Outras questões" para "Questões resolvidas"
Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada. Tópico marcado como Resolvido e movido para Questões resolvidas. |
![-](https://2img.net/i/fa/fdf3/moins10.png)
» Chatbox com delay
» #1432 Newsletters com Delay?
» [Chatbox] Botão Chatbox na barra denavegação
» ChatBox - Cor
» Chatbox, bug
» #1432 Newsletters com Delay?
» [Chatbox] Botão Chatbox na barra denavegação
» ChatBox - Cor
» Chatbox, bug
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Outras questões :: Questões resolvidas: Outras questões
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos