PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/12/06 20:50:27
Name Patrick Jane
Subject [질문] node.js 질문입니다!
node.js를 이용해서 피시방 또는 가게안의 자리를 볼 수 있는 웹페이지를 만들고있습니다.

우선 블럭들을 자리모양으로 만들어서 클릭을하면 색이 바뀌도록 만들었습니다.

제가 node.js를 처음해봐서 http://blog.naver.com/PostView.nhn?blogId=hyoun1202&logNo=220671500986

여기있는 영화예매 만들어보기를 기준으로 만들었습니다. 여기서  socket 쓰는 부분만 json으로 post하도록 바꾸었습니다.

근데, 제가 만든 사이트에서는 누르면 바로바로 색이 바뀌는것이아니라 누르고 새로고침을 해줘야지만 색이바뀝니다.

해당 프로그램을 똑같이만든 다른사람들의 시연영상을보면 누르는 즉시 바뀌는거 같은데, 제꺼는 왜 안바뀌는지 계속 해봐도 잘안됩니다...


우선 index.js는
----------------------------------------------------
var express = require('express');
var router = express.Router();

global.seats = [       // 0 빈 공간, 1 예약가능 좌석, 2 예약이 완료된 좌석
    [1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
]
;


/* GET home page. */
router.get('/', function(req, res, next) {
  console.log(global.seats);
  res.render('index');
});

router.use('/reserve', function(req, res){
  var x = req.body.x;
  var y = req.body.y;
  global.seats[y][x] = 2;
  console.log(global.seats);
  res.end();
}) ;
router.use('/release',function(req, res){
  var x = req.body.x;
  var y = req.body.y;
  global.seats[y][x] = 1;
  res.end();
});
module.exports = router;
-------------------------------------------------
seats.js
var express = require('express');
var router = express.Router();


/* GET users listing. */
router.get('/', function(req, res, next) {
  //요청
    //req  --> x, y
    // seat[x,y] = 2;
  res.send(global.seats);
});

module.exports = router;
----------------------------------------------------
controller.jade
script.
        var onClickSeat = function () {
            var x = $(this).attr('data-x');
            var y = $(this).attr('data-y');

            $.ajaxSettings.traditional = true;
            $.ajax({
                type: 'POST',
                url: '/reserve',
                data: {x: x, y: y},
                success: function (data) {

                }
            })
        };
        var onClickRelease = function () {
            var x = $(this).attr('data-x');
            var y = $(this).attr('data-y');

            $.ajaxSettings.traditional = true;
            $.ajax({
                type: 'POST',
                url: '/release',
                data: {x: x, y: y},
                success: function(data){
                }
            })

        };

        $.getJSON('/seats', {dummy: new Date().getTime()}, function (data) {
            $.each(data, function (indexY, line) {
                var $line = $('
').addClass('line');
                $.each(line, function (indexX, seat) {
                    var $output = $('
', {
                        'class': 'seat',
                        'data-x': indexX,
                        'data-y': indexY
                    }).appendTo($line);

                    if (seat == 1) {
                        //좌석이 비어있으면 enable 클래스와 click 리스너를 추가합니다.
                        $output.addClass('enable').on('click', onClickSeat);
                    } else if (seat == 2) {
                        //좌석이 사용 불가능 하면 disable클래스를 추가합니다.
                        $output.addClass('disable').on('click', onClickRelease);
                    }
                    else if (seat == 3) {
                        $output.addClass('counter');
                    }
                });
                $line.appendTo('body');
            });
        });

 우선 이렇게 만들었습니다. 파일이 필요하신분은 쪽지주시면 개인적으로 보내드리도록 하겠습니다....

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/12/06 21:25
수정 아이콘
nodejs는 안해봤지만 onClickSeat, onClickRelease 에서 success:function 안에 $(this).removeClass("disable"); $(this).addClass("enable"); 이런식으로 넣어줘야 UI 바뀌는게 작동을 할거같아요.
Patrick Jane
16/12/06 21:30
수정 아이콘
우선은 그런방식으로 고쳐봤는데요 이게 다른컴퓨터에서도 실시간으로 바뀌는게 보이려면 어떻게해야하나요ㅠㅠ
16/12/06 21:33
수정 아이콘
그거는 setInterval 같은걸로 몇초 간격으로 주기적으로 $.getJSON('/seats', ... 이걸 실행시켜서 내용을 바꿔주는 식으로 하면 되지 않을까 싶습니다.
Patrick Jane
16/12/06 21:45
수정 아이콘
답변 감사드립니다~
칸나바롱
16/12/07 12:26
수정 아이콘
실시간으로 바뀌는걸 하고 싶으시면 socket io나 pusher 같은 서비스를 알아보세요
Patrick Jane
16/12/07 16:00
수정 아이콘
처음에는 ajax로 보내는 부분을 본문에있는 링크처럼 socket io로 했다가 안돼서 ajax로 한건데 pusher한번 알아봐야겠네요 답변 감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
94417 [질문] 세컨 폰 요금제 추천부탁드립니다. [4] 3225 16/12/07 3225
94416 [질문] 파이널판타지15이 단점이 뭔가요?(구매예정) [18] 게롤트3929 16/12/07 3929
94415 [질문] 아침에 매번 너무 일어나기 힘드네요 [59] 칼퇴추구자4935 16/12/07 4935
94414 [질문] 음원사이트 정기결제 문의입니다. [17] fRtJ3077 16/12/07 3077
94413 [질문] 강남역 저렴한 카페 추천부탁드려요 [9] 보라색맛나!3322 16/12/07 3322
94412 [질문] 컴터 견적사항 다시 질문드립니다. [7] DogSound-_-*3303 16/12/07 3303
94411 [질문] 모니터를 구매할까 생각중입니다.(추천부탁드려요) [15] Maiev Shadowsong2980 16/12/07 2980
94410 [질문] Arrival(컨택트)이란 영화 언제 개봉하지요?? [4] 예쁜여친있는남자2670 16/12/07 2670
94409 [질문] 편도선 제거 수술?? 코골이 수술?? [17] 유포늄5485 16/12/07 5485
94408 [질문] 삼성과 LG 제품 전자품질 차이 어느정도라고 보십니까? [40] ADVISORY4660 16/12/07 4660
94407 [질문] 상간남과 전부인 처벌 가능한법이 있을까요 [4] Power_0rc3939 16/12/07 3939
94406 [질문] 97년 대통령선거 한나라당 후보 경선 불복 - 피닉제의 서막? [5] 공안9과2747 16/12/07 2747
94405 [질문] 19) 여러분이 생각하시는 첫경험의 기준은 무엇인가요? [25] 양념반자르반9929 16/12/07 9929
94404 [질문] 50시간 정도로 엔딩볼만한 게임 추천좀 부탁드려요 [17] lenakim3288 16/12/07 3288
94403 [질문] 받아먹는 녹즙 효과가 어떤가요? [2] Private2091 16/12/07 2091
94402 [질문] '이번주 아내가 바람을 핍니다' 최종회 보신분 계신가요? (스포가득) [7] Maiev Shadowsong3586 16/12/07 3586
94401 [질문] 날이 조금 쌀쌀하면 본체에서 소리가나는데요 [2] 업보2037 16/12/07 2037
94400 [질문] Ssd 교체방법 질문드립니다 [2] 헬로비너스나라2832 16/12/07 2832
94399 [질문] 유투브 말고 국정조사 생중계 주소 아시는분 있나요? [7] 쪼아저씨2062 16/12/07 2062
94398 [질문] 장티푸스 예방접종 관련 질문입니다 태연­1791 16/12/07 1791
94397 [질문] 금요일 2시 퇴근 가치가 어느정도 될까요? [35] 삭제됨3424 16/12/07 3424
94396 [질문] 게임 추천부탁드려요 [6] 교자만두2395 16/12/07 2395
94395 [질문] 복수가 주제인 영화 만화책 소설 애니 추천 부탁드립니다. [21] 레너블4276 16/12/07 4276
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로