2009-08-01 7 views
2

저는 10 년 동안 데스크톱 응용 프로그램을 개발 한 후 웹 개발 분야에 뛰어 들고 있습니다. 나는 높은 수준의 개념을 할 수있는 한 빨리 배우며, 그 중 하나는 MVC입니다. 나는 javascript, css, html과 같은 것들이 M, V, 또는 C에 속하지 않는다는 것을 알아 챘다. 명시 적으로 어디서나 읽지는 않았지만, MVC 패턴은 구성하는 데만 사용된다는 것을 이해하고있다. 코드 및 웹 사이트의 서버 측 데이터 이게 이상한 질문이라면 사과드립니다, 나는 멍청하다는 것을 기억하십시오! :)웹 사이트의 경우 MVC 패턴이 서버 측에서만 사용되는 것이 맞습니까?

미리 감사드립니다.

답변

5

렌더링 된 페이지에는 javascript, jquery 및 기타 스크립팅 메커니즘이 포함될 수 있습니다. 이러한 것들은보기에 정면으로 앉아서 모든 클라이언트 측 (브라우저에서)을 수행합니다.

나머지 (모델 및 컨트롤러)는 서버에서 실행됩니다. 뷰 자체의 대부분은 서버 측에서 렌더링됩니다.

다음은 데이터를 그룹화하고 출력을 브라우저로 렌더링하는보기의 작은 예입니다.

<ul> 
<% foreach (var group in Model.GroupBy(item => item.Category)) { %> 

    <li><%= Html.Encode(group.Key) %> 
    <ul> 

    <% foreach (var item in group) { %> 
     <li><%= Html.Encode(item.Data) %></li> 
    <% } %> 

    </ul> 
    </li> 

<% } %> 
</ul> 

거기에 자바 스크립트가 없음을 유의하십시오. 이 코드는 서버에서 완전히 실행됩니다. li 및 ul 태그는 브라우저에 전달되어 정렬되지 않은 목록 항목 목록을 만듭니다.

Key1 
    Data1 
    Data2 
    Data3 
Key2 
    Data4 
    Data5 

.. 등 :

출력은 브라우저에서 다음과 같이 보입니다.

코드 ALL은 서버에 있지만 일부는 서버에서 실행되고 일부는 (HTML과 자바 스크립트) 브라우저로 전달되어 실행된다는 점에 유의하십시오.

+0

감사합니다. robert! 또 다른 질문입니다. 서버에있는보기에 들어 맞는 것들은 무엇입니까? – BeachRunnerFred

+1

@Beeph, 템플릿 기반 콘텐츠 생성 페이지는보기 범주에 속합니다. (예 : jsp (java), aspx (net)) – adatapost

2

MVC는 소스 코드를 구성하는 방법입니다. 소스 코드가있는 경우 세 가지 중 하나를 사용할 수 있습니다. MVC 패턴의 어떤 부분에도 고유 한 클라이언트 또는 서버 측면이 없습니다.

예를 들어, 최근에는 (igoogle과 같은) 순수 자바 스크립트로 가젯 포털을 구현했습니다. json 데이터 blob에서 가젯 구성을로드하고 저장하고 해당 가젯의 설정을 관리하는 모델 클래스가 있습니다. 그런 다음 모델에서 보낸 이벤트를 기반으로 현재 모델에로드 된 가젯을 자동으로 렌더링하는 뷰가있었습니다. 마지막으로, 모델을 업데이트하기 위해 나머지 애플리케이션에서 메뉴 클릭을 전달한 컨트롤러가있었습니다. 그것은 MVC이지만, 순수하게 자바 스크립트와 순수한 클라이언트 측입니다.

0

CSS, HTML 및 자바 스크립트는 MVC 아이디어를 구현하는 서버 측 언어를 사용할 때 뷰를 처리합니다. Javascript는 컨트롤러와 더 많은 상호 작용을하기 때문에 다소 muddier합니다.

0

코드와 데이터를 체계화하는 것만이 아닙니다. 뷰와 관련하여 일반적인 웹 페이지 (jQuery, JavaScript, Ajax, Knockout 등)로 무엇을 할 수 있습니다. 그리고 Ajax를 서버 측 (컨트롤러)과 대화 할 수 있습니다. MVC는 일반적인 aspx 웹 앱보다 빠르게 작동합니다. 프로젝트/코드를 이해하는 것이 더 좋으며 팀의 새로운 사람들에게 코드를 소개하는 데 걸리는 시간이 짧습니다. 유지 보수하는 것이 더 낫고 올바른 건축 설계로 처음부터 다시 개발할 필요가 없습니다.

관련 문제