Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2008, 06:32
BeRMaNyA
 
Fecha de Ingreso: febrero-2008
Mensajes: 33
Antigüedad: 16 años, 9 meses
Puntos: 1
Problemon con MiniChat (php + jquery)

Bueno la verdad no sabia si postearlo en el foro de ajax, o en el subforo de frameworks.
Pero la verdad es algo que me esta matando, hize un minichat con php y jquery, pero hay un problemon, en Mozilla se ejecuta lo mas bien, pero en Internet Explorer, se consumen todo los recursos cuando uso la funcion setTimeout(); lo que hace que internet se caiga,, la funcion la uso para que cada 5 segundos, 'refresque' el 'chat' y sea mas dinamico, aca dejo el javascript que le puse.

Javascript:
Código:
function minichat()
			{
					var chat_m = $("#chat").css("display");
					if (chat_m == "none") {
						$("#chat").slideDown("slow");
					}
					else {
						$("#chat").slideUp("slow");
					}
				
			}
			
			function chat() {				
				$("#texto-chat").load("chat.php");
				setTimeout("chat()", 5000);	
			}
			
			function enviarChat() {
				var texto = $("#texto-enviar").val();
				var sid = $("#sid").val();
				
				$.post(sid, { texto: texto, enviar: "Enviar" },
  				function(data){
					if (data != "") {
						alert(data);
					}
					$("#texto-chat").load("chat.php");
					$("#texto-enviar").val("");
 				 });
			}
			
			$("document").ready(function(){
				chat();
				
				$("#texto-enviar").keypress(function (e) {
					if (e.which==13){
						enviarChat();
					}
				});
				
			});
Aca el HTML:

Código:
<input type="hidden" value="{SID}" id="sid" />
		<div id='chat'>
			<div id='titulo' onmousedown="dragStart(event, 'chat')"> <img src='template/hinchadamanya/images/iconchat.png' class='icon'> <a href="#" onclick="minichat()"> Mini Chat</a></div>
			<div id='texto-chat'>
				Cargando MiniChat
			</div>
			
			<div id='enviar'>
				<!-- IF LOGGED_CHAT -->
					<input type='text' id='texto-enviar' size='30' / > <a href='#' onclick='enviarChat()'> Enviar </a>
				<!-- ELSE -->
					Necesitas estar registrado
				<!-- ENDIF -->
			</div>
		</div>
Yo stoy seguro que el problema es en la funcion chat(); cuando se ejecuta
setTimeout, en IE.
Porfavor la verdad que es urgente, si alguien me puede ayudar, se los voy agradecer muchisimo :)

Saludos



EDIT:
Estaba probando y me di cuenta, que.. en Internet Explorer toma el cache, y por mas que yo de F5 el chat muestra lo mismo hasta que borre los temporales.

Alguna manera de solucinarlo?


EDIT2:

Hize esto:
Código:
function chat() {
	$("#texto-chat").html("Actualizando!");				
	$("#texto-chat").load("chat.php");
				
	var navegador = navigator.appName; 
	if (navegador == "Microsoft Internet Explorer") {
		setTimeout("chat()", 10000);
	}
	else {
		setTimeout("chat()", 5000);
	}
}
Y no hay ningun problema, no se tranca ni nada.
Solo que cuando se usa el metodo load, carga el cache.

Cual puede ser la solucion?

Última edición por BeRMaNyA; 25/09/2008 a las 07:34