2012-05-23 1 views
1

안녕하세요 사람과 로봇,.NET MVC4를 사용하여 실용적인 실시간 응용 프로그램 모범 사례

시스템 용 프론트 엔드 웹 응용 프로그램을 개발 중이며 약간의 문제가 발생했습니다.

전체 응용 프로그램이 한 페이지에 있어야합니다. 즉, 응용 프로그램의 주요 영역이 흐르는 동안 새로 고침이나 페이지 변경이 없음을 의미합니다.

또한 IE7을 포함한 모든 웹 브라우저에서 작동해야하며 태블릿 및 휴대 전화 용 HTML5 애플리케이션으로 배포 할 수 있어야합니다.

웹 양식 인증에 의해 규제되는 사용자 로그인을 기반으로합니다. 그런 다음 업데이트를 위해 서버를 폴링하거나 폴링해야합니다. 시스템의 각 부분에 대한 요청을 수행 할 수 있다면 간단 할 것입니다. 그러나 시스템이 너무 커지면 세션 차단이 문제가되어 결국 자체적으로 종료 될 수도 있습니다. 그래서 내가해야 할 일은 하나의 요청을 보내고 그 요청으로부터 하나의 응답을 만드는 방법을 생각하는 것입니다.

첫 번째 아이디어는 JSON 또는 XML을 사용하여 응답 모델을 작성하고 JavaScript에서 업데이트해야 할 사항을 조정하도록하는 것입니다. 예를 들어, 주제에 대해 새로운 코멘트가 작성되면 모든 클라이언트가 즉시이 업데이트를 즉시 볼 수 있습니다.

[ 
    'd': 
    { 
     'addComment' : [{'topicId':'topic1', 'description':'haha'}, {'topicId':'topic1', 'description':'lol'}], 
     'addTopics' : ['topic2','topic708'], 
    } 
] 

자바 스크립트 다음이를 구문 분석하고 추가 할 것 "하하"및 "LOL"아이디 "항목 1"인 요소 : 내 생각은 이런 일을 보낼 수 있었다. 이론적으로는 달성하기가 아주 쉽지만 시스템이 커지면서 끊임없이 커다란 혼란으로 변해가고있는 것처럼 보입니다.

두 번째 아이디어는 DOM에서 물건을 추가 및 제거하고 JSONP 기술을 사용하여이 함수를 호출하기위한 클라이언트 측 함수 집합을 간단히 가지는 것입니다.

var addComment = function(commentModel) 
{ 
    var topic = document.getElementById(commentModel.topicId), 
     comments = topic.getElementByClassName('comments')[0], 
     comment = document.createElement('div'); 

    comment.innerHTML = commentModel.description; 
    comments.appendChild(comment); 

    updateUnreadComments(); 
} 

는 응답 :

(function(addComment){ 
    addComment({ topicId : 'topic1', description : 'haha' }) 
    addComment({ topicId : 'topic1', description : 'lol' }) 
})(addComment) 

는 개인적으로 나는 두 가지 방법 간단 방송보다 더 아무것도 다소 성가신 해결 방법을 찾을 수 있습니다.

나는 다른 누구도 똑같은 문제를 겪은 적이 있는지, 그리고 그들이 더 창조적 인 해결책을 찾지 못했는지 궁금합니다.

JSONP에서 기대할 수있는 보안 문제가 무엇인지 알고 싶습니다.

모든 도움을 주실 수 있습니다!

답변

관련 문제