prototype.js 의 Updater 로 데이터에 따라 다른 동작 구현하기
조회수 1414회
node.js + express 로 웹 사이트 구현 중입니다.
현재 좋아요 기능에 대해 구현 중인데요.
페이지가 새로고침 되지 않고 동작하도록 하기 위해 ajax 로 만져보며 알아보던 중,
아주 좋은 prototype.js 라는 프레임워크를 발견했습니다.
현재 이 prototype.js 로 결과 값까지 전달 받는 것은 구현 했습니다.
그런데, Request 는 결과 값에 따라 if 문으로 다른 동작을 하도록 하는게 가능하지만,
Updater 는 결과 값을 받아서 element 에 바로 적용해버리기 때문에 불가능하더라구요.
( evalSciprts 옵션이 있다는데 문법 에러가 나서 어떻게 사용하는지 모르겠습니다. )
new Ajax.Updater({success:'like-action'}, "/like", {
method:'post',
parameters : {"no" : "1"},
onLoading: function() {
},
onSuccess : function(returnValue) {
},
onFailure : function() {
},
onComplete : function(returnValue) {
}
});
위 코드는 처리 성공시 id="like-action" 인 element에 서버에서 받은 결과값을 삽입하는 코드입니다.
서버에서 넘기는 데이터를 success: true, success: false 로 넘겨서 boolean 에 따라 성공하면 like 값을 1 증가시키고, 실패하면 alert 창을 띄우고 싶습니다.
ps. Request 에서는 값을 받을 수 있으니 하는 방법은 알겠으나 $("#").after() 같은 jquery 문법이 안 먹히더라구요.
1 답변
-
Ajax.Request에 대한 공식 문서[1]를 보면 onSuccess로 응답을 처리할 수 있다고 나와있습니다.
new Ajax.Request('/your/url', { onSuccess: function(response) { // Handle the response content... } });
onSuccess의 첫 인자는 Ajax.Response[2]로 전달된다고 명시되어있습니다[3].
만약 JSON 데이터를 받으시면서 Content-Type 응답 헤더가 application/json으로 되어있다면
responseJSON
속성을 사용하실 수 있다고 합니다.[4] 아닐 경우라면responseText
속성을 사용하실 수 있을거같아요.[5]-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력