2026, 새로운 도약을 시작합니다.

지금 연습해보고 있는 채팅 페이지인데 도움 구합니다

Copy




    
    
    

    
    

    


    
        
            
                MENU
                
                
                    메인
                    채팅
                    공개 채팅
                
            
        
        
            
            
                
                

                
                
                

                
            
            
                
                
            
        


        
            
                
                    

                        
                            
                                &times
                                Close
                            
                            

                            
                        

                        

                        

                        
                            확인
                        
                    
                
            
        


        
            
                
                    MEMBER LIST
                
                

                
            
        
    



    function submitMessage() {
        let room_id = [[${room_id}]];
        let id = '[[${id}]]';
        let chat_content = $('#chatContent').val();
        let file_url = null;
        let chat_type = "text";
        let chatRoomContentDTO = {
            "room_id": room_id,
            "id": id,
            "chat_content": chat_content,
            "file_url": file_url,
            "chat_type": chat_type
        };


        $.ajax({
            type: "POST",
            url: "/chat/submit_message",
            data: JSON.stringify(chatRoomContentDTO),
            contentType: "application/json; charset=utf-8;"
        })

        $('#chatContent').val(''); // 내용 초기화
    }


    let last_msg = 0;
    let first_load = 0;
    function loadMessage(get_msg) {
        let room_id = '[[${room_id}]]';
        let id = '[[${id}]]';
        let chatRoomContentDTO = {
            "room_id": encodeURIComponent(room_id),
            "id": encodeURIComponent(id)
        };
        $.ajax({
            type: "POST",
            url: "/chat/load_message",
            data: JSON.stringify(chatRoomContentDTO),
            dataType: "json",
            contentType: "application/json; charset=utf-8;",
            success: function(data) {
                if(data == "") return;
                //let result = data.result;
                get_msg = Number(data.last);

                if(last_msg  data.length) {
                    for(let i = 0; i  data.length; i++) {
                        if(data.length > 0) {
                            addChatHtml(data[i].id, data[i].chat_content, data[i].chat_date);
                        }
                    }
                }
                last_msg = Number(data.last);
            }
        })
    }

    function addChatHtml(id, content, time) {
        let myID = '[[${id}]]';

        if(myID == id) {
            $('.myMsg').append(
                '' +
                '' + id +'('+ time +')'+ '' +
                '' + content + '' +
                ''
            );
        } else {
            $('.anotherMsg').append(
                '' +
                '' + id +'('+ time +')'+ '' +
                '' + content + '' +
                ''
            );
        }
        $('#chatLog').scrollTop($('#chatLog')[0].scrollHeight);
    }

    function getInfiniteChatLoad() {
        setInterval(function (){
            loadMessage(last_msg);
        }, 300);
    }



    $(document).ready(function () {
        getInfiniteChatLoad();
    })



지금 만들고 있는 채팅페이지인데 db연동까지 다 끝마친 상태입니다

그런데 텍스트를 치고 엔터키나 버튼을 누르면 새로고침이 되네요;;

아마 form을 사용해서 그런것 같은데 어떻게 해결해야할지 모르겠습니다

어떻게 해야하는지 알 수 있을까요?

답변 2개

해결했습니다.. Ajax 문제였네요 ㅜㅜ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<form ... onsubmit="return false"

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

시도해봤습니다!
리로드는 사라졌는데채팅 메시지가 바로바로 불러와지질 않네요 ㅜㅜ
답변 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고