2016-11-04 8 views
4

私はしばらくの間検索し、それに関する何も関係がないことを発見しました。私はUXのセクションを聞いてみたところ、彼らはもっとここに属していると言いましたので、再びここに行きます:JavaScriptを使用してページ全体をレンダリングすることをお勧めしますか?

従業員が編集、追加、削除、または閲覧できるページを作成しています。サーバーが純粋なJSONを送信してから、ブラウザのJavaScriptがJSONを処理してレンダリングするため、ページの一部の要素をレンダリングし、ページの一部をアニメーション化するためにJavaScriptに依存します(ページの読み込み処理を高速化し、 )ページ全体。

これは美しく見え、本当に速く読み込まれますが、良いプログラミング手法と考えられますか?そして、それが問題になるのはいつですか? Internet Explorerやモバイルブラウザ(Chrome、ABPブラウザ)でもすべてのページが問題なく表示されます。何か問題やその他の事はありません。私はそれらの700本の+ JSラインを見たときしかし、疑問が

とケース誰で

ページはその後、ここでいくつかの写真、どのようなものか好奇心旺盛です...残り:(、無関係であるとは限らないかもしれない)

https://i.stack.imgur.com/0rLI6.jpg

https://i.stack.imgur.com/d90n9.jpg

+1

動作していてパフォーマンスが良好であれば、私は個人的に物事がどのように構築されているか気にしません。しかし、Javascript *は扱いやすいものでなければなりません。あなたがやったことをただ楽しむのではなく、それを扱う次の人を考えてみましょう。いくつかのコードの例を投稿すると、より良い答えが得られます。なぜなら、答えは他のものよりも関連しているからです。 – Archer

+1

アクセシビリティを検討する価値はあると思われますが、ほとんどのユーザーは物事がどのように構築されているか気にする必要はありませんが、ほとんどのユーザーには障害はありません。障害のある人々をサポートするソフトウェアによっては、すべてのJSサイトが問題になる可能性があります。最新のものではありませんが、電話をかける前に調べる価値があります。 – GillesC

+1

それは懸念の分離の原則に反して、ユーザーがjavascriptを無効にしているとサイトが完全に壊れてしまいますが、同時に同じようにReactが動作します – Pixelomo

答えて

2

no。 JavaScriptなしでユーザーに提供できるサイトについて貴重なものがあれば、あなたはそれをやっていないと酷いdisserviceです。あなたのコードが(エラー:を読む)エラーを起こす可能性があります.CDNがダウンする可能性があり、さまざまな理由でJSをオフにする可能性もあります。 JavaScriptを使わずに(フォームを使用して)ユーザーをログすることは完全に可能で、JavaScriptなしで(サーバー側のHTTPリクエストとレンダリングを使用して)コンテンツを取得して提供することは可能です。あなたのアプリはには JSが必要ですが、実際にはデータの更新を除いてJavaScriptを必要とするものはありません。それについて何かがない限り、私たちには言いません。

良い練習ではありません。この特定のケースでは守れない?多分。

多くの支援技術は現在JavaScript対応であり、Googleが少なくともSEOの観点からは理想的ではないにしても、Googleもそうではありません。これは実際にはUXのものに変わります。

私はここで強硬姿勢を取っていません。キャンバスゲーム、テキスト/画像/ etcエディタ、ギターチューナー、Googleマップアプリケーションなど、JavaScriptを必要とする事柄の明らかな反例と存在証明があります。私が構築するサイトのほとんどはJavaScriptが必要です。また社内サイトでは、社員専用のサイトですか? JavaScriptを要求するのは、おそらく細かいです。しかし、何か公共の場面で絶対に必要とすることを非常に、非常に躊躇してください。

+0

これをクリアしていただきありがとうございます。 – Fusseldieb

0

は、理論的にはそれと間違って何もありません。これはReactアプリケーションの一般的な動作です。

SEOは重要ですか?そうであれば、同形アプリケーションを検討することをお勧めします。つまり、クライアント上で使用するコードとほぼ同じコードを使用して、サーバー上にHTML出力を生成し、ブラウザに送信します。

しかし、単純にReactのようなライブラリなしでHTMLコンテンツをレンダリングするためにJSを使用しているのであれば、それは良い考えではないと思います。 Reactの人気は、仮想ドームの使用です。ほとんどのWebアプリケーションで最初のパフォーマンスボトルネックはレンダリング、より具体的にはDOMスラッシングです。 Reactはあなたのページを更新するためにブラウザが必要とするレンダリングの量を最小限に抑えるためにいくつか賢いことをします。

最近、誰かがWebアプリケーションを作成したいと思ったら、ReuxをReduxのようなもので使用しないようにするのが妥当な理由になると思います。クライアント側対

第一サーバー側のレンダリング:

+0

Googleはjavascriptをレンダリングできます。 ref:http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157 – Jay

0

私はカップルの事を注意したいです。 Javascriptは本当にローカルで作業するのが得意ですが、ロード時に要素を隠そうとしている場合(例のように)、ユーザーエクスペリエンスが悪い点滅やその他の変わった癖を経験するかもしれません。適切な初期状態を持つことは非常に重要です。その同じ無駄に - あなたはjavascriptですべての巨大なアプリケーションを持っている場合は、長いロード時間のためにUXを妨げる可能性があります。

第2メンテナンス性。異なるUI要素をコンポーネント化する場合は、ビューを変更するのが自然になります。これはすべてのソフトウェアで言えるかもしれませんが、フレームワークやクライアントライブラリ(角度や反応など)を使わずにコンポーネントを手作業で書き出しているのであれば、それはあなたと作業している人々にとって負担になります。

+0

私はCSSで最初にやっているので、点滅することは問題ではありません。そして、はい、私は最初からすべてを構築している、私はそれが良いことであるかどうかは分かりません。 – Fusseldieb

0

あなたが提供した情報に基づいて、それは問題ありません。

それが操作されているかを確認するために離れて、あなたのアプリケーションを選ぶなければ、

  • コードのバージョン管理
  • コンテンツの分離とプレゼンテーション
  • アクセス制御
周り 潜在リスクがあります

コードバージョン管理

JSONデータを前後に渡すだけで、驚異的な面で大きな勝利を得ることができます。しかし、新しいバージョンのJavascriptコードをどのようにクライアントに配備するのかを計画していますか?例えばHTML5マニフェスト、バージョン情報をトランザクションに使用します。

コンテンツとプレゼンテーションの分離は

あなたはJSONでシリアライズされた埋め込まれたHTML、Javascriptのか、CSSを送っていますか?これはあらゆる種類の合併症やセキュリティ問題につながる可能性があります。

アクセス制御

アプリが危険にさらされた場合に起こりうる最悪の事態は何ですか? Webアプリケーションのセキュリティに関する一般的なガイダンスは、従来のサーバー側のHTTPリクエスト/応答モデル(セッションあり)を中心に構築されています。 Javascriptがセッションクッキーにアクセスできないということは、私たちのアプリケーションのセキュリティを守る最初のものの1つです。 Oauth2は、この種のシナリオに対処するために具体的に書かれています。

+0

私は、基本的にサーバー、このmeany、トップバー、サイドバー、および他のすべてのものからHTMLとCSSとして '基本'ページをロードしています。 Javascriptを使って構築している主なコンテンツ(HTMLコードが重複して表示されず、読み込み時間が遅くなる可能性があります) – Fusseldieb