↓ ajax 기존버전(구버전)
$(".click").click(function(){
$.ajax({
url:"sub.html",
success:function(data){
$("#container").html($(data).find("li"))
}
});
})
// 여기서 data는 url링크와 동일하게 인식됨
async : ture or false (defalut : ture)
// ture 비동기 , flase 동기
timeout : 밀리세컨드
// timeout 설정으로 해당 시간동안 통신이 되지않을 경우 통신 에러발생
콜백 동작 순서
→성공 success > complete > done > always
→실패 error > complete > fail > always
참고
https://api.jquery.com/jquery.ajax/
↓ ajax 최신버전
$("div").click(function(){
$("#container").load("sub.html li")
})
현재 열려있는 페이지 내 #container에 sub.html 내에 있는 li를 불러옴
li를 기입하지않을 경우 html전체를 불러옴(iframe과 비슷)
$(".click").click(function () {
$.ajax({
url: "sub.html",
success: function (data) {
console.log("ajax 성공")
},
error: function(){
console.log ("ajax 실패")
},
complete: function(){
console.log ("ajax 발생")
},
})
});
// success = done, error = fail, complete = always
var call = $.ajax({
url:"sub.html",
})
$(".click").click(function(){
call.done(function(data){
$("#container").html($(data).find(".div"));
console.log("ajax 성공")
})
.fail(function(){
// call.fail(function(){
console.log("ajax 실패")
})
.always(function(){
console.log("ajax 발생")
})
})
구버전 → 최신버전
success → done
error → fail
complete → always
완전히 동일한 것은 아니지만 위와같이 보면됨
beforeSend.function(){
ajax가 실행되기 전 실행 될 함수
}
ex) beforeSend 로딩바 실행 > complete 로딩바 삭제
beforeSend는 ajaxStart로 대체 (아마)
complete는 ajaxStop로 대체 (아마)
$(".click").click(function () {
$.ajax({
url: "sub.html",
success: function (data) {
$(".ul1").html($(data).find("li"))
console.log("성공")
},
error: function(){
console.log("실패")
}
});
$(".ul2").load("sub.html li", function(a,b,c){
if(b == "success")
// if(b == "success" && c.status == 200)
console.log("success:" + c.status +" "+ c.statusText);
if(b == "error")
console.log("Error: " + c.status +" "+ c.statusText);
});
});
// 성공할 경우 success: 200 OK
// 실패할 경우 Error: 404 Not Found
파일 불러오기 성공여부 판단 가능 코드
a는 reponseText // 불러올 파일의 내용
b는 statusText // 불러올 파일의 연결 상태
c는 xhr // 요청의 상태
c.status의 종류
→ 200(파일있음), 404(파일없음), 403(파일은 있으나 권한 없음)
c.statusText의 종류
→ OK or Not Found
script사용할 경우 if(b==success) 에서 기재후 사용가능
success && 200을 사용하면 조금더 확실한 성공여부를 판가름가능하지만
아직까지 잘 모르겠음
$.ajax = $.get(), $.post(), $.getScript()를 합쳐놓은 메서드
'js' 카테고리의 다른 글
[js] select 유지 시키기 (0) | 2022.08.25 |
---|---|
[js]마우스 휠 감지 (0) | 2022.08.08 |
[js]디바운싱과 쓰로틀 debounce Throttle 쓰로틀링 (0) | 2022.07.12 |
[js]만 나이 구하기 (0) | 2022.07.08 |
[js]input text 전체 입력 시 버튼 활성화 (0) | 2022.07.06 |