load의 정의
웹 페이지의 내용을 동적으로 교체하기 위해서 Ajax로 서버에서 데이터 json 형식으로 받아 HTML 요소를 생성하여 페이지내의 원하는 위치의
내용을 바꾸는 작업을 많이 합니다. jQuery의 .load() 메소드는 주어진 URL로부터 HTML 데이트를 받에서 jQuery 셀력터로 선택된 위에에 넣어 줌으로써 동적으로 페이지의 내용을 교체하는 작업을 간단하게 처리할 수 있도록 해줍니다.
출처: https://offbyone.tistory.com/235 [쉬고 싶은 개발자]
적용 사래
한 페이지에서 댓글을 입력, 수정, 삭제 등의 작업을 한다.
첫 구현은 ajax 후 페이지 리로드 되도록 작업
$.post(url, dataParam, function (result) {
if (result.resultCode === 'success') {
alert("댓글 삭제 완료");
location.reload();
}
else {
alert("댓글 삭제 실패");
}
})
하지만 댓글의 경우 작업 하나하나마다 페이지가 리로드 되면 사용성이 현저하게 떨어지기에 해당 페이지에서 댓글 작업 이후에는 댓글 부분만 변경 되도록 수정
댓글 관련 부분을 언제나 동적으로 가져와야 되기에 따로 jsp 파일로 빼놓고 필요한 곳에서 include 시킴
<div id="comment_container">
<jsp:include page="comment.jsp"/>
</div>
댓글 입력, 삭제, 수정 등의 작업 ajax 에서 success 리턴 값을 받으면 댓글을 새로 조회하는 url을 호출 한다.
여기서 comment_container 라는 div 안의 내용을 댓글을 조회하는 url에서 리턴 해주는 값으로 교체한다는
load 함수를 사용한다.
$.post(url, dataParam, function (result) {
if (result.resultCode === 'success') {
alert("댓글 입력");
var url = "/echoline/reloadComment?requestNo=" + $('#click-requestNo').val() + "&requestIndex=" + $('#requestIndex').val() + "&status=" + $('#status').val();
$('#comment_container').load(url);
}
else {
alert("회원가입 실패");
}
})
load 함수의 파라미터 정의
Query .load() 메소드 사용법은 다음과 같습니다. 세 가지 인자를 가질 수 있습니다.
.load( url [, data ] [, complete ] ) 반환값: jQuery
- url : 데이터를 받을 URL을 나타내는 문자열입니다.
- data : 선택적인 인자로 URL 로 요청을 보낼 때 같이 보낼 데이터로 자바스크립트 객체 또는 문자열 입니다.
- complete : 요청이 완료되면 호출되어질 콜백함수 입니다. Function( String responseText, String textStatus, jqXHR jqXHR )
출처: https://offbyone.tistory.com/235 [쉬고 싶은 개발자]