23

誰かがこの問題の解決策を見つけたのかどうか疑問に思います。プログレッシブエンハンスメントのハイブリッドページベース/シングルページWebアプリケーション(Angularjs、Ember.js)?

  • ビルドページベースのサイト、永久的なリンク、アクセシビリティ、SEO、そして優雅なフォールバック/プログレッシブ・エンハンスメント(基本的にすべてのbest practices of web development
  • とで、:両方の長所を取得する方法はありますコンテンツをajaxで読み込んだレスポンシブなフロントエンド体験、基盤となるサイトのページをナビゲートする際のページのリフレッシュ、スクリプト/コンテンツ/ css /などの最小限の冗長ダウンロード。私はいくつかの主要なサイトは、この(Gmailの、stackoverflowの)を管理することができます見て、私はJeff's new siteは最低限を構築していることがわかり(AngularJsまたはEmber.jsなどのクライアント側のフレームワークのすべての利点)

noscriptタグ内のサイトのバージョン。

  1. ハイブリッドページベース/シングルページアプリケーションのソリューションは、サイトの2つのバージョンを作成し、両方を送信し、クライアントが表示できるものを決定できるようにしますか? (これはgmailの機能ですか?)
  2. また、AngularJS et al。優雅な劣化を許容するようには設計されていませんか?

私のDRY脳は#1が答えだと思うと痛いです。

(私がAngularJsに焦点を当てているのは、htmlテンプレート、宣言的スタイル、jsスコープを修正しようとする試みが好きだからです。Emberとその他のフレームワークも優れています。ハイブリッドサイトの場合)

答えて

14

この質問は微妙な1のビットです。たとえば、Gmailについて言及したが、GmailのようなアプリケーションがSEOのインデックスに登録される必要がある理由は何もないが、あなたがサポートしたいものや必要なものによって異なります。はJavascriptをサポートしないようにしたいと考えています。

しかし、 "Webアプリケーション"のクラスでは、 "no-javascript"引数でさえも疲れていて弱いです。私はWindowsが必要なWindowsアプリケーションを使いたいのですが、JavaScriptを使ったWebアプリケーションを使用したいのであれば、それを使用するのに支障がないブラウザが必要になると仮定するのは不合理ではありません。

私はAngularJSと話すことができますが、これは私が最もよく知っているからです。ほとんどの場合、漸進的な強化アプローチをサポートすることができますが、これがサポートしたいものならURLルーティングのようなものを使うことは期待しません。 AngularJSコントローラ、バインディング、ディレクティブは、ページのやり取りや振る舞いを向上させる方法としてjQueryを使う方法と似ています。

このアプローチではAngular(またはEmberとの関係)でできることを真剣に制限し、このアプローチから得られるものがjQueryだけでは決してできないことを議論し始めるかもしれません。

代わり、これらの日は、Twitterのようなサイトがやっていることを行うことです。これは、基本的には完全に初期ロード上の任意のビューのために、サーバーからHTMLをレンダリング仕え、その後のロードと強化されたUIの動作のためにJavascriptを使用しています。あなたが本当にJavaScriptでとせずにブラウジングをサポートする必要があり、最初の要求のためのレンダリング/ロード時間を改善する追加の利点を持っている場合、これは(実装するために、おそらく非常に困難が)非常に有効です。再度 "それは依存する"ので、これはあなたのサイトが実際にどのように動作するかに大きく依存するため、これを使用することができます。あなたはそれをデザインしなければなりません。それは簡単ではないでしょう。

更新:それは私たちがYear of Mooアプローチを取ってSEOはPhantomJSを使用して、それらを提供するためにどこかにそれらのキャッシュされた初期状態を貼り付ける必要があるページをレンダリングする価値がある何のため

。私たちはこれをアップデートするために我々が展開上で実行するレーキタスクを持っています。これもまた最初の状態ですが、今のところ問題を回避するのに役立ちます。

物事は常に変化していますが、私は1年ほどでこのアプローチについて私の考えを変えたと確信しています。

2

GoogleのMaking AJAX Applications Crawlableを読んだことがありますか? JavaScriptの単一ページアプリとクロール可能なコンテンツを持つことができます。

あなたが角度に固執する場合は、興味深い記事があります:答えは「それが依存」であるため、Turns out it is possible to have your AngularJS application indexed

+0

Googleインデクサーはブラウザのように動作し、ページをレンダリングするので、インデックス作成に適した角度にするために何もする必要はありません。https://googlewebmastercentral.blogspot.no/2015/10 /deprecating-our-ajax-crawling-scheme.html –

関連する問題