code

점진적인 향상을 가진 하이브리드 페이지 기반 / 단일 페이지 웹 앱(Angularjs, Ember.js)?

starcafe 2023. 10. 20. 13:54
반응형

점진적인 향상을 가진 하이브리드 페이지 기반 / 단일 페이지 웹 앱(Angularjs, Ember.js)?

이 문제에 대한 해결책을 찾은 사람이 있는지 궁금합니다.두 세계를 모두 최대한 활용할 수 있는 방법이 있습니까?

  • 영구적인 링크, 접근성, SEO 및 우아한 폴백/프로그레시브 향상(기본적으로 모든 웹 개발 모범 사례)을 갖춘 페이지 기반 사이트 구축
  • jax loading of contents, 기본 사이트 페이지 탐색 중 페이지 새로 고침, 스크립트/content/css/ 등의 최소 중복 다운로드(AngularJs 또는 Ember.js와 같은 클라이언트 측 프레임워크의 모든 이점)를 사용하는 javascript를 가진 사용자의 경우

몇몇 주요 사이트에서 이를 관리할 수 있으며(gmail, stack overflow), Jeff의 사이트에서 스크립트 태그를 사용하여 베어본 버전의 사이트를 구축할 수 있습니다.

  1. 하이브리드 페이지 기반/단일 페이지 앱의 솔루션은 두 가지 버전의 사이트를 구축하고, 두 가지 버전을 모두 전송하고, 어떤 것을 보여줄 수 있는지 고객이 결정하도록 하는 것입니까?(이것이 gmail이 하는 일입니까?)
  2. 아니면 Angular가 문제인 것 같습니다.JS 등은 단순히 우아한 열화를 허용하도록 설계되지 않은 것입니까?

1위가 정답이라고 생각하니 머리가 아파요.

(AngularJs에 집중하는 이유는 html templating, deconative style, js scoping을 수정하려는 시도에 대한 지원을 좋아하기 때문입니다.Ember와 다른 프레임워크도 훌륭합니다. 그 중 하나가 하이브리드 사이트에 더 적합할까요?)

이 질문은 대답이 "다름"이기 때문에 약간 미묘한 질문입니다.예를 들어 당신이 Gmail을 언급한 것처럼, Gmail과 같은 응용 프로그램이 SEO를 위해 색인화되어야 할 이유는 없지만, 당신이 무엇을 원하거나 지원해야 하는지에 따라 당신이 자바스크립트가 없는 것을 지원할 수 있도록 보장하기를 원할 수도 있습니다.

하지만 적어도 "웹 애플리케이션" 클래스에 대해서는 "노 자바스크립트" 논쟁조차도 요즘 점점 지치고 약해지고 있습니다.Windows 응용 프로그램을 사용하려면 Windows가 필요합니다. 자바스크립트로 구동되는 웹 응용 프로그램을 사용하려면 이 응용 프로그램을 사용하기 위해 손상되지 않은 브라우저가 필요하다고 가정해도 무방합니다.

하지만 당신의 질문에 저는 앵귤러와 얘기할 수 있을 뿐입니다.JS는 제가 제일 익숙하기 때문에.대부분의 경우 점진적인 향상 접근 방식을 지원할 수 있지만, 지원하고자 하는 URL 라우팅과 같은 것을 사용하지는 않습니다.Angular를 사용할 수 있습니다.JS 컨트롤러, 바인딩 및 지시사항은 jQuery를 페이지의 상호 작용 및 동작을 향상시키는 방법으로 사용하는 방법과 유사합니다.

이 접근 방식은 Angular(또는 이 문제의 경우 Ember)로 수행할 수 있는 작업을 심각하게 제한하며 jQuery만으로는 쉽게 수행할 수 없었던 이 접근 방식에서 무엇을 얻을 수 있는지에 대해서는 논란의 여지가 있습니다.

요즘 대안은 트위터와 같은 사이트가 하는 일을 하는 것입니다.이것은 기본적으로 초기 로드에 대한 모든 뷰에 대해 서버에서 완전히 렌더링된 HTML을 제공하고 이후 로드 및 향상된 UI 동작을 위해 자바스크립트를 사용합니다.이것은 자바스크립트를 사용하거나 사용하지 않고 브라우징을 지원해야 할 경우 매우 효과적이며(아마도 구현하기는 어려울 것입니다), 첫 번째 요청에 대한 렌더링/로드 시간을 향상시킬 수 있는 추가적인 이점이 있습니다.이것을 사용하는 것이 가능하다면 실제로 사이트가 어떻게 작동하는지에 따라 많이 달라지기 때문에 "달라지기"도 합니다.당신은 그것을 위해 디자인을 해야 하고, 그것은 사소하거나 쉽지 않을 것입니다.

업데이트:

우리는 무의 해 접근법을 취하고 팬텀을 사용하여 SEO가 필요한 페이지를 렌더링할 가치가 있습니다.JS와 그들에게 서비스를 제공하기 위해 캐시된 초기 상태를 어딘가에 고정하는 것입니다.이를 업데이트하기 위해 배포 시 실행하는 레이크 태스크가 있습니다.다시 말하지만, 이것은 단지 초기 상태일 뿐이지만 지금으로서는 이 문제를 해결하는 데 도움이 됩니다.

하지만 상황은 항상 변하기 마련이고, 저는 1년 정도 후면 이 접근법에 대한 제 생각을 바꿀 것이라고 확신합니다.

구글의 Making AJAX Applications Scrolable을 읽어 본 적이 있습니까?자바스크립트 싱글 페이지 앱과 크롤링 가능한 콘텐츠를 가질 수 있습니다.

각진 것을 고수하면 재미있는 기사가 나옵니다.당신의 각선미를 가질 수 있는 것으로 밝혀졌습니다.JS 응용프로그램 색인화

언급URL : https://stackoverflow.com/questions/16064113/hybrid-page-based-single-page-web-app-angularjs-ember-js-with-progressive-e

반응형