Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/08/2012, 05:12
mario8
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda con javascript en chat

He descubierto que esta funcion es la que no me va bien si cambio un codigo me manda el id pero no salen los mensajes hasta que no actualizas la pagina alguien sabe por que falla y me puede ayudar?? gracias este es el codigo:
Código Javascript:
Ver original
  1. function chatHeartbeat(){
  2.  
  3.     var itemsfound = 0;
  4.    
  5.     if (windowFocus == false) {
  6.  
  7.         var blinkNumber = 0;
  8.         var titleChanged = 0;
  9.         for (x in newMessagesWin) {
  10.             if (newMessagesWin[x] == true) {
  11.                 ++blinkNumber;
  12.                 if (blinkNumber >= blinkOrder) {
  13.                     document.title = x+' dice...';/* AKI ES LO DE ARRIBA DEL TITULO*/
  14.                     titleChanged = 1;
  15.                     break; 
  16.                 }
  17.             }
  18.         }
  19.        
  20.         if (titleChanged == 0) {
  21.             document.title = originalTitle;
  22.             blinkOrder = 0;
  23.         } else {
  24.             ++blinkOrder;
  25.         }
  26.  
  27.     } else {
  28.         for (x in newMessagesWin) {
  29.             newMessagesWin[x] = false;
  30.         }
  31.     }
  32.  
  33.     for (x in newMessages) {
  34.         if (newMessages[x] == true) {
  35.             if (chatboxFocus[x] == false) {
  36.                 //FIXME: add toggle all or none policy, otherwise it looks funny
  37.                 $('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');
  38.             }
  39.         }
  40.     }
  41.    
  42.     $.ajax({
  43.       url: "chat.php?action=chatheartbeat",
  44.       cache: false,
  45.       dataType: "json",
  46.       success: function(data) {
  47.  
  48.         $.each(data.items, function(i,item){
  49.             if (item)   { // fix strange ie bug
  50.  
  51.                 chatboxtitle = item.f;
  52.  
  53.                 if ($("#chatbox_"+chatboxtitle).length <= 0) {
  54.                     createChatBox(chatboxtitle);
  55.                 }
  56.                 if ($("#chatbox_"+chatboxtitle).css('display') == 'none') {
  57.                     $("#chatbox_"+chatboxtitle).css('display','block');
  58.                     restructureChatBoxes();
  59.                 }
  60.                
  61.                 if (item.s == 1) {
  62.                     item.f = username;
  63.                 }
  64.  
  65.                 if (item.s == 2) {
  66.                     $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');
  67.                 } else {
  68.                     newMessages[chatboxtitle] = true;
  69.                     newMessagesWin[chatboxtitle] = true;
  70.                     $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+item.m+'</span></div>');
  71.                 }
  72.  
  73.                 $("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
  74.                 itemsfound += 1;
  75.             }
  76.         });
  77.  
  78.         chatHeartbeatCount++;
  79.  
  80.         if (itemsfound > 0) {
  81.             chatHeartbeatTime = minChatHeartbeat;
  82.             chatHeartbeatCount = 1;
  83.         } else if (chatHeartbeatCount >= 10) {
  84.             chatHeartbeatTime *= 2;
  85.             chatHeartbeatCount = 1;
  86.             if (chatHeartbeatTime > maxChatHeartbeat) {
  87.                 chatHeartbeatTime = maxChatHeartbeat;
  88.             }
  89.         }
  90.        
  91.         setTimeout('chatHeartbeat();',chatHeartbeatTime);
  92.     }});
  93. }
en este if:
if ($("#chatbox_"+chatboxtitle).length <= 0) {
createChatBox(chatboxtitle);
}
si lo cambio asi:
if ($("#chatbox_"+chatboxtitle).length <= 0) {
createChatBox(chatid);
}
Funciona pero no me yegan los mensajes hasta que no actualizo la web alguien sabe aq puede ser debido?? gracias.