ajax 질문 (왕 초보 질문) 채택완료
a.html
<script src="<a href="http://code.jquery.com/jquery-latest.js"></script>" target="_blank" rel="noopener noreferrer">http://code.jquery.com/jquery-latest.js"></script></a>
<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></p>
<p><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를 사용 안 하셔도 되지 않을까 싶네요.
답변에 대한 댓글 3개
setInterval 같은 메소드로 몇 초 간격을 두고 홈페이지 디비를 긁는 건 DDOS에 가깝지 않을까 싶습니다.
html5 웹소켓이나 socket.io 같은 걸 알아보셔야 할 것 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
이전 질문과 비슷한듯 다르네요?
정확한 요구조건은 모르겠지만
"게시물을 새로고침 또는 해당 내용만 주기적으로 가져온다" 는 내용은 AJAX 가 맞습니다
하지만 고쳐야될 해당 element 를 특정해야 하고 AJAX 호출은 비동기 이므로 주기적으로 실행될수 없습니다.
AJAX 를 호출해서 해당 element 를 갱신한뒤에 다시 일정시간 - 몇초 - 후에 다시 AJAX 를 호출하는
일종의 재귀 개념으로 가야 되는데
그 흐름이 머리속에 그려지지 않은 상태에서 setTimeout 이나 setInterval 을 쓰게되면 잘못될 소지가 아주 많은 코드가 됩니다.
귀찮으시더라도 AJAX 로 가져올 데이타만 있는 html 페이지를 만드셔서 충분히 테스트 후에 반영하셔야 할 듯합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
혹시, 저렇게 불러오면 새로고침 없이 최신 데이터를 반영하지 못하나요 ?
그렇다면 인터벌(간격)을 두고 아작스를 실행하면 제가 원하는
새로고침 없이 변경되는 값을 일정한 간격 (ex 1초)을 두고 가져오게 만들 수 있을까요 ?
어느 부분을 참고하면 좋을지 조언 부탁드립니다. 답변 고맙습니다.
알려주신 코드로 적용 해보겠습니다.