Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Igor Pereira

codifica em melho pratica ou alterar o config mysql

Recommended Posts

Pessoal,

criei um sisteminha de comentarios dinamico. Onde eu atualizo os comentarios a cada 10seg.

 

na pagina index.php eu faco a atualizacao dos comentarios via AJAX:

 <script type="text/javascript">
$(document).ready(function() {
	 $("#responsecontainer").load("comentarios.php"); // pagina que busca no SQL  os comentarios inseridos.
  var refreshId = setInterval(function() {
     $("#responsecontainer").load('comentarios.php?randval='+ Math.random());
  }, 9000);
  $.ajaxSetup({ cache: false });
});
</script>

 

na pagina comentarios.php tenho:

 

require_once( "conexao.php" ); chamada para conexao SQL.
# a query para selecionar os comentarios.
# o loop para escrever os comentarios
# query para verificar users online
#query para inserir/atualizar/ deletar users online

 

o sisteminha estava funcionando perfeitamente até aumentar a qtde de users online. agora a página comentarios.php de tempo em tempo da erro de too many connections. fui pesquisar sobre essa variavel dá até para altera-la no my.ini porém vi comentários de que se está causando esse tipo de erro é porque nao esta fazendo boas praticas de programacao e que existe outro metodos que melhore no desepenho da aplicacao ao inves de alterar essa variavel, outro motivo é nao adiante eu aumentar o valor dessa variavel para amanha der o mesmo erro com uma qtde mto maior de users online.

 

entao pensei que haveria algum metodo de atualizar os comments dinamicamente como no facebook. mas como?

sugestoes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há uma maneira mais facil... só que você terá q aumentar um pouco seu codigo javascript... é o seguinte ao invés de você carregar todos os comentários, você só irá carregar quando algum novo comentário for cadastrado.... e só será carregado o novo comentário os outros não...

 

Uma vez fiz um sistema parecido, porém tive que usar uma biblioteca de javascript chamada Prototype

Recados.php

<script src="/media/JS/prototype.js"></script>
<script type="text/javascript">
/************************/
/*********você pega o ultimo id inserido no banco de dados e coloca aqui:*********/
/************************/
var lastid = <? echo $last_id; ?>;
function getMessages()
{
new Ajax.Request( 'msg.php?id='+lastid, {
onSuccess: function( transport ) {
var messages = transport.responseXML.getElementsByTagName( 'message' );
for( var i = 0; i < messages.length; i++ )
{
var message = messages[i].firstChild.nodeValue;
var id = parseInt( messages[i].getAttribute('id') );
if ( id > lastid )
{
div = document.getElementById("chat").innerHTML;
message = urldecode(message);
document.getElementById("chat").innerHTML ="<div class='msg'>"+message+"</div>"+div;

lastid = id;
}
}
window.setTimeout( getMessages, 3000 );
}
});
}
getMessages();

 

Na pagina : msg.php

Faça a seguinte estrutura:

<?
$query = mysql_query("Select * From msg where id>'$_GET[id]'");
if(mysqll_num_rows>0(
while($d=mysql_fetch_array){
?>
<messages>
<message id="<? echo $d['id']; ?>">
<? echo $d['msg'] ?></message>
</messages>
<?
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.