점진적인 향상을 가진 하이브리드 페이지 기반 / 단일 페이지 웹 앱(Angularjs, Ember.js)?
이 문제에 대한 해결책을 찾은 사람이 있는지 궁금합니다.두 세계를 모두 최대한 활용할 수 있는 방법이 있습니까?
- 영구적인 링크, 접근성, SEO 및 우아한 폴백/프로그레시브 향상(기본적으로 모든 웹 개발 모범 사례)을 갖춘 페이지 기반 사이트 구축
- jax loading of contents, 기본 사이트 페이지 탐색 중 페이지 새로 고침, 스크립트/content/css/ 등의 최소 중복 다운로드(AngularJs 또는 Ember.js와 같은 클라이언트 측 프레임워크의 모든 이점)를 사용하는 javascript를 가진 사용자의 경우
몇몇 주요 사이트에서 이를 관리할 수 있으며(gmail, stack overflow), Jeff의 새 사이트에서 스크립트 태그를 사용하여 베어본 버전의 사이트를 구축할 수 있습니다.
- 하이브리드 페이지 기반/단일 페이지 앱의 솔루션은 두 가지 버전의 사이트를 구축하고, 두 가지 버전을 모두 전송하고, 어떤 것을 보여줄 수 있는지 고객이 결정하도록 하는 것입니까?(이것이 gmail이 하는 일입니까?)
- 아니면 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
'code' 카테고리의 다른 글
Github Push Error: RPC 실패, 결과=22, HTTP 코드= (0) | 2023.10.20 |
---|---|
장고: 단위 테스트 실행 중 작동 오류 (0) | 2023.10.20 |
객체 유형을 허용하는 해시 코드 함수가 있습니까? (0) | 2023.10.20 |
Facebook 스타일 JQuery 자동 완성 플러그인 (0) | 2023.10.20 |
콘솔2를 파워셸과 함께 사용할 수 있습니까? (0) | 2023.10.20 |