ajax 질문 (왕 초보 질문)

ajax 질문 (왕 초보 질문)

QA

ajax 질문 (왕 초보 질문)

본문

a.html

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function() {
    $("#search").on("click", function(e) {
        e.preventDefault();
        $.ajax({
            url : "test.php",
            type : "post",
            data : {
                tbl : "g5_write_notice",
                wrid : 1
            },
            success : function(res) {
                if(res) {
                    $("#result").text(res);
                }
            }
        });
    });
});
</script>
<a href="#" id="search">자유 게시판 1번 게시물 제목 갖고 오기</a>
<span id="result"></span>
<script>
    var timer = setInterval(function()(<?=$search();?>);
    }, 1)

 

test.php

<?php
include_once "./_common.php";
$table = $_POST['tbl'];
$wrid = $_POST['wrid'];
$result = sql_fetch("SELECT `wr_subject` FROM ".$table." WHERE `wr_id` = ".$wrid);
echo $result['wr_subject']; ?>

 

 

부끄럽지만 질문 올려 봅니다. 부끄러움은 잠깐이지만 배움은 평생 간다는 마음 가짐으로 ..

Q&A 게시판에서 다음과 같은 예제를 구했습니다 아작스를 공부하고 있는데요.

ftp 최상위 루트에 넣었고 이상 없이 잘 작동합니다.

 

저는 그런데 <a href="#" id="search">자유 게시판 1번 게시물 제목 갖고 오기</a> 이 부분의

텍스트 클릭 없이 a.html를 띄우자 마자 ajax가 게시판 1번 게시물을 가져오게 하고 싶습니다

 

어찌 하면 될까요 ?

이 질문에 댓글 쓰기 :

답변 2

$(function() {
    $.ajax({
        url : "test.php",
        type : "post",
        data : {
            tbl : "g5_write_notice",
            wrid : 1
        },
        success : function(res) {
            if(res) {
                $("#result").text(res);
            }
        }
    });
});

다 걷어내고 이것만 쓰시면 됩니다.

근데 페이지 로딩되자마자 쓰실 거면 굳이 ajax를 사용 안 하셔도 되지 않을까 싶네요.

아작스가 데이터를 새로고침 없이 동기화 (변경 데이터 출력) 한다 해서요.
혹시, 저렇게 불러오면 새로고침 없이 최신 데이터를 반영하지 못하나요 ?
그렇다면 인터벌(간격)을 두고 아작스를 실행하면 제가 원하는
새로고침 없이 변경되는 값을 일정한 간격 (ex 1초)을 두고 가져오게 만들 수 있을까요 ?
어느 부분을 참고하면 좋을지 조언 부탁드립니다. 답변 고맙습니다.
알려주신 코드로 적용 해보겠습니다.

보내주신 예제로 작동은 잘 되네요 ! 그런데 말씀해주신데로 ajax를 굳이 사용 할 필요가 없게 데이터가 새로고침 없이 실시간으로는 변경 값을 불러와주질 못하네요 제가 ajax를 구현하려는 이유는 변경 데이터를 새로고침 없이 실시간으로 출력해준다고 해서 인데 그렇게 하려면 어찌 해야할까요 ? 일정 주기로 아작스를 실행시키면 되나요 ?

사용자가 특별한 입력을 하지 않아도 자동으로 일정한 시간마다 값을 갖고 오게 하겠다는 거 같네요.
setInterval 같은 메소드로 몇 초 간격을 두고 홈페이지 디비를 긁는 건 DDOS에 가깝지 않을까 싶습니다.
html5 웹소켓이나 socket.io 같은 걸 알아보셔야 할 것 같습니다.

이전 질문과 비슷한듯 다르네요?

정확한 요구조건은 모르겠지만

"게시물을 새로고침 또는 해당 내용만 주기적으로 가져온다" 는 내용은 AJAX 가 맞습니다

 

하지만 고쳐야될 해당  element 를 특정해야 하고 AJAX 호출은 비동기 이므로 주기적으로 실행될수 없습니다.

AJAX 를 호출해서 해당 element 를 갱신한뒤에 다시 일정시간 - 몇초 - 후에 다시 AJAX 를 호출하는 

일종의 재귀 개념으로 가야 되는데 

그 흐름이 머리속에 그려지지 않은 상태에서 setTimeout 이나 setInterval 을 쓰게되면 잘못될 소지가 아주 많은 코드가 됩니다.

 

귀찮으시더라도 AJAX 로 가져올 데이타만 있는 html 페이지를 만드셔서 충분히 테스트 후에 반영하셔야 할 듯합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 12
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT