prototype.js 의 Updater 로 데이터에 따라 다른 동작 구현하기

조회수 1412회

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 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    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]

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)