웹 응용 프로그램은 무의식적으로 교체 데스크탑 applications. 그들은 사용하기가 더 편리하고,업데이트하기 쉽고,하나의 장치에 바인딩되지 않습니다. 그리고 비록 사용자가 부드럽게 움직이는 브라우저에서는 웹 기반의 응용 프로그램으로 모바일 사람에 대한 수요는 복잡하고 세련된 앱은 이미 거대하고 여전히 성장하고있다., 을 생각하는 경우 당신의 자신을 만드는 방법에 대한 응용 프로그램,당신은 아마이 있다는 두 가지 주요 디자인 패턴에 대한 웹 애플리케이션:다-응용 프로그램(MPA)및 싱글-응용 프로그램 페이지(스파). 그리고 물론,두 모델 모두 장단점이 있습니다.

당신이 실제 응용 프로그램에 아이디어를 돌려 시작하기 전에,당신은 중요한 질문의 무리에 대답해야합니다. 무엇을 결정하는 응용 프로그램 모델은 당신을 위해 더 나은,당신은 따라야 하는 콘텐츠가 첫 번째 방법을 강조하는 것의 중요성을 응용 프로그램 내용하기 전에 모든 것을 다른 사람., 콘텐츠가 사용자가 응용 프로그램을 사용하거나 사용하지 않을 주된 이유이기 때문입니다. 과 이것은 우리의 가장 중요한 질문:어떤 콘텐츠를 수행하려는 현재 어떤 콘텐츠를 사용자에게 가장 관심을 가지는 것입니다.

MPA 뿐만 아니라 SPA 의 많은 장단점이 있습니다. 나는 아래 것입 취소 사이의 차이점 이러한 두 가지 디자인 패턴과 더 가까이있는 지점이 무엇인지 알 응용 프로그램의 종류에 맞는 당신의 아이디어 더 있습니다. 그리고 자신의 응용 프로그램에 대한 아이디어가 실현되도록하십시오.,단일 페이지 응용 프로그램은 브라우저 내부에서 작동하며 사용 중에 페이지를 다시로드 할 필요가없는 응용 프로그램입니다. 당신은 매일이 유형의 응용 프로그램을 사용하고 있습니다. 예를 들어 Gmail,Google 지도,Facebook 또는 GitHub 입니다.
SPAs 는 브라우저에서”자연스러운”환경을 모방하여 뛰어난 UX 를 제공하는 것에 관한 것입니다—페이지 재로드 없음,추가 대기 시간 없음. 그들이 크게 의존—그것은 당신이 다음 자바 스크립트를 사용하여 다른 모든 콘텐츠를로드 방문하는 하나의 웹 페이지입니다.,

SPA 는 마크 업과 데이터를 독립적으로 요청하고 브라우저에서 페이지를 바로 렌더링합니다. AngularJS,Ember 와 같은 고급 JavaScript 프레임 워크 덕분에이 작업을 수행 할 수 있습니다.js,유성.js,녹아웃.js 입니다.
싱글 페이지 사이트 유지하는 데 도움이 사용자 중 하나에 편안한 웹사 공간에는 컨텐츠 사용자에게 제공되는 간단하고 쉽게 실행할 수 있는 패션이다.

단일 페이지 응용 프로그램의 장점:

  • SPA 는 대부분의 리소스(HTML+CSS+스크립트)가 응용 프로그램의 수명 기간 동안 한 번만로드되므로 빠릅니다. 데이터 만 앞뒤로 전송됩니다.,
  • 개발이 간소화되고 간소화됩니다. 서버에서 페이지를 렌더링하는 코드를 작성할 필요가 없습니다. 그것은 훨씬 쉽게 시작할 수 있기 때문에 일반적으로 킥오프 개발에서 파일이 파일://URI 를 사용하지 않고,모든 서버에서 모두.
  • SPAs 는 네트워크 작업을 모니터링하고 관련 페이지 요소 및 데이터를 조사 할 수 있으므로 Chrome 으로 디버깅하기 쉽습니다.
  • 의 모바일 응용 프로그램을 만들기 때문에 개발자가 재사용할 수 있습니다 같은 코드 백엔드 웹 응용 프로그램 및 네이티브 모바일 응용 프로그램입니다.
  • SPA 는 로컬 스토리지를 효과적으로 캐시 할 수 있습니다., 응용 프로그램은 하나의 요청 만 보내고 모든 데이터를 저장 한 다음이 데이터를 사용할 수 있으며 오프라인에서도 작동합니다.

의 단점 단일 응용 프로그램 페이지:

  • 그것은 매우 까다로운 쉽지 않은 작업을 SEO 최적화의 응용 프로그램 페이지. 그 내용은 페이지를 새로 고치지 않고 응용 프로그램에서 데이터를 교환하고 업데이트하는 방법 인 AJAX(비동기 JavaScript 및 XML)에 의해로드됩니다.
    update27.09.2017:그녀의 의견에서 Iris Shaffer 는 서버 측에서도 수행 할 수 있다고 올바르게 지적했습니다. 실제로,그것은 예전보다 오늘날 더 쉽습니다.,
  • 무거운 클라이언트 프레임 워크를 클라이언트에로드해야하기 때문에 다운로드 속도가 느립니다.
  • 자바 스크립트가 존재하고 활성화되어 있어야합니다. 어떤 사용자가 자신의 브라우저에서 자바 스크립트를 비활성화하면 응용 프로그램과 해당 작업을 올바른 방법으로 제시 할 수 없습니다.
    update27.09.2017:그녀의 코멘트에서 Iris Shaffer 는 동형 렌더링/서버 측 렌더링을 사용하면 이미 서버에서 페이지를 렌더링 할 수 있다는 것을 알았습니다. 초기 렌더가 서버에 있고 캐시 될 수있는 경우 JS 를 비활성화하면 렌더링 된 페이지를 가져 오는 것이 문제가되지 않습니다., 이론적으로는 맞습니다. 분명히 서버 측에서 렌더링 할 수 있습니다. 그러나 JS 의 부족은 다른 기능에 대한 우려가 될 수 있습니다. 일이 많이 할 수 있는 HTML&CSS 하지만 저의 경험에서 그것은 것은 지옥을 이 방법 대신에 자바스크립트를 사용한다.
  • “전통적인”응용 프로그램에 비해 SPA 는 덜 안전합니다. XSS(교차 사이트 스크립팅)로 인해 공격자가 다른 사용자가 웹 응용 프로그램에 클라이언트 측 스크립트를 주입 할 수 있습니다.,
  • 메모리 누수에서 JavaScript 할 수 있도 원 강력한 시스템을 천천히
  • 이 모델에서 다시 앞으로 단추고 있다.
    업데이트 27.09.2017:요즘에는 더 이상 문제가되지 않습니다.

다중 페이지 응용 프로그램

다중 페이지 응용 프로그램은”전통적인”방식으로 작동합니다. 모든 변경 예. 데이터를 표시하거나 브라우저에서 서버에서 새 페이지를 렌더링 서버 요청에 다시 데이터를 제출합니다. 이러한 응용 프로그램은 크고 스파보다 커야하기 때문입니다. 콘텐츠의 양으로 인해 이러한 응용 프로그램에는 많은 수준의 UI 가 있습니다., 운 좋게도 더 이상 문제가되지 않습니다. 감사 AJAX,우리는 걱정할 필요가 없는 크고 복잡한 응용 프로그램 전송 데이터를 많이 사용하여 서버와 브라우저입니다. 그 솔루션은 향상되고 응용 프로그램의 특정 부분 만 새로 고칠 수 있습니다. 반면에,더 많은 복잡성을 추가하고 단일 페이지 응용 프로그램보다 개발하기가 더 어렵습니다.

의 프로 여러 응용 프로그램 페이지:

  • 그것의 완벽한 접근해야 하는 사용자를 위해 시각적 인지도의 어디로 가야합니다., 고체,몇 수준의 메뉴 탐색은 기존의 멀티 페이지 응용 프로그램의 필수적인 부분입니다.
  • 적절한 SEO 관리를 위해 아주 좋고 쉽습니다. 그것은에게 더 나은 기회를 위해 평가하기 위하여 다른 키워드부터 응용 프로그램에 맞게 최적화할 수 있는 키워드 중 하나입니다.

의 단점을 여러-응용 프로그램 페이지:

  • 없는 옵션을 사용하여 동일한 백엔드와 함께 모바일 응용 프로그램입니다.
    update27.09.2017:당시이 기사를 작성할 때 백엔드 및 모바일 앱에 대한 경험이 많지 않았습니다., 이제는 두 가지 모두에 대해 동일한 백엔드를 사용할 수 있다는 것이 분명합니다. 그리고 그 점을 지적한 모든 독자들에게 감사 드리고 싶습니다.
  • 프론트 엔드와 백엔드 개발은 긴밀하게 결합되어 있습니다.
  • 개발이 상당히 복잡해집니다. 개발자는 클라이언트와 서버 측 중 하나에 프레임 워크를 사용해야합니다. 이로 인해 애플리케이션 개발 시간이 길어집니다.

SPA 또는 MPA?

웹 응용 프로그램을 배포하기 전에 그 목표를 고려해야합니다., 당신이 알고있는 경우에 당신은 필요 여러 카테고리(기 때문에,예를 들어,온라인 쇼핑몰을 운영하거나 게시하는 다른 많은 내용)—사용하여 여러 페이지의 사이트입니다. 귀하의 사이트가 순수한 단일 페이지 경험에 적합하다고 확신하는 경우-그것을 위해 가십시오. 그리고 스파를 좋아하지만 모든 것을 단일 페이지에 간신히 맞출 수 있다면 대신 하이브리드 사이트를 고려하십시오. 이것은 내가 전에 언급하지 않은 또 다른 방법입니다. 하이브리드 응용 프로그램은 두 가지 접근 방식 모두에서 가장 좋은 것을 취하고 단점을 최소화하려고합니다., 그것은 사실,하나의 페이지를 사용하는 응용 프로그램 URL 앵커로 합성고 페이지를 사용하면서 구축 브라우저 탐색하고 환경 설정 기능이 있습니다. 그러나 이것은 다른 기사에 대한 주제입니다.

아마도 미래에 모든 사람들이 사용하여 페이지 하나 응용 프로그램 모델을 포함하여(하이브리드 응용 프로그램),하는 것으로 가져 많은 이점이 있습니다. 시장에 나와있는 많은 앱이이 모델로 마이그레이션되고 있습니다. 그러나 일부 프로젝트는 단순히 SPA 에 들어갈 수 없으므로 MPA 모델은 여전히 생생합니다.

원래 paweł Skólski 에 의해 출판 neoteric.eu/blog 2016 년 12 월 1 일에.