2014-07-11 2 views
0

Im 순간에 아약스 채팅을 직접 프로그래밍합니다. 핵심 물건이 완료,하지만 난이 문제를 가지고있다 : 2 초마다 새 메시지 확인AJAX 채팅, 새로 고침 및 많은 메시지

  1. 임, 그리고 새 메시지가있는 경우 나 부모의 채팅 창으로 .Append()를 추가합니다. 그러나 내가 요소를 추가 할 때마다 채팅이 깜박이며보기에도 좋고 수용 가능한 문제도 아닙니다. 그리고, 내 두 번째 문제로 나를 이끌고, 요소의 스크롤을 다시 설정합니다.

  2. 채팅을 항상 하단으로 스크롤하고 싶기 때문에 지금은 .animate({ scrollTop: $(document).innerHeight() }, 1);을 사용합니다. 그러나 일정한 양의 메시지 또는 하위 요소에서 스크롤은 단지 중간에 머물러 있습니다 ...

두 가지 문제를 모두 찾았지만 아직 도움을 찾지 못했습니다. 그리고 나 혼자서 전체 채팅을 한 이후로 나는 많은 것을 봤다.

의견이나 제안을 보내 주셔서 감사합니다. 채팅 기능을 개선하는 방법 :)

편집 : 당신은 당신이 문서가 아닌 스크롤 할 요소의 높이를 점점 스크롤 추가] 코드

 `// For loop for every chat window 
     for(i = 0; i < chatListArray.length; i++) 
     { 
      (function(id) { 
       // Ajax call to get the chat history 
       $.ajax({ 
        type: "POST", 
        url: 'code/submit/submitGetChat.php', 
        data: "id=" + id, 
        success: function(data){    
         $('#chatItemContent_' + id).empty(); // Clear the window 
         $('#chatItemContent_' + id).append(data); // Append the new chat history 
         $('#chatItemContent_' + id).animate({ scrollTop: $(document).innerHeight() }, 1); // scroll down to bottom, to display the latest messages 
        } 
       }); 
      })(chatListArray[i]); // callback 
     }` 
+0

추가 코드를 표시하십시오. 아마 당신은 많은 추가 호출과 루프에 메시지를 추가하려고합니다. 추가하기 전에 이들을 연결하여 표시하도록하십시오 : 추가 스타일 후에는 제거하지 않을 none 스타일 (또는 .hidden과 같은 스타일을 가진 클래스)을 표시하십시오. – Zbyszek

+0

나는 질문을 편집했다. 당신의 도움을 주셔서 감사합니다! –

+0

왜 요소를 지우시겠습니까? – serakfalcon

답변

0

. 이거 해봤 니?

$('#chatItemContent_' + id).animate({ scrollTop: $('#chatItemContent_' + id).innerHeight() }, 1); 

문서 높이가 아닌 현재 채팅 창 높이에 따라 scrollTop을 설정합니다.

+0

고마워,하지만 여전히 중간에 중도에서 멈 춥니 다. http://imgur.com/PoAtPCc –

+0

메시지의 양을 20 개로 제한했지만 몇 가지 메시지가 있지만이 버그는 여전히 나타납니다. –

관련 문제