Webアプリケーションは無意識のうちに置き換えられています古いデスクトップアプリ。 彼らは使いやすく、更新が簡単で、一つのデバイスにバインドされていません。 そして、ユーザーがブラウザベースのwebアプリケーションからモバイルアプリケーションに優しく移行しているにもかかわらず、複雑で洗練されたアプリケーシ, 独自のアプリケーションを作成することを考えている場合は、webアプリケーションには、マルチページアプリケーション(MPA)とシングルページアプリケーション(SPA) そしてもちろん、両方のモデルには長所と短所があります。

あなたのアイデアを実際のアプリケーションに変え始める前に、重要な質問にたくさん答えなければなりません。 どのアプリケーションモデルが優れているかを判断するには、アプリケーションコンテンツを他のすべてのものよりも優先することの重要性を強調す, その内容の主な理由であるユーザーは、他のご利用になれます。 そしてこれは最も重要な質問に私達を導く:どんな内容を示したいと思い、どんな内容をあなたのユーザーが最も気遣うか。

SPAとMPAには多くの長所と短所があります。 私は、以下の行は、これら二つのデザインパターンの違いをクリアし、あなたがより多くのあなたのアイデアに合ったアプリケーションの種類を知ってい おもてなしには考え自身で独自のアプリケーションされています。,

単一ページアプリケーションは、ブラウザ内で動作し、使用中にページの再読み込みを必要としないアプリです。 このタイプのアプリケーションを毎日使用しています。 これらは、例えば、Gmail、Googleマップ、Facebook、GitHubなどです。
Spaは、ブラウザで”自然な”環境を模倣しようとすることによって、優れたUXを提供することについてのすべてです—ページのリロードなし、余分な待ち時間なし。 それはあなたが訪問するただ一つのwebページであり、JavaScriptを使用して他のすべてのコンテンツをロードします。,

SPAはマークアップとデータを個別に要求し、ブラウザでページを直接レンダリングします。 AngularJS、Emberのような高度なJavaScriptフレームワークのおかげでこれを行うことができます。jsメテオjsノックアウトジェイ-エス-
シングルページサイトは、コンテンツが、シンプルで簡単かつ実行可能な方法でユーザーに提示される一つ、快適なwebスペースでユーザーを保つのに役立ちます。

シングルページアプリケーションの長所:

  • SPAは高速で、ほとんどのリソース(HTML+CSS+スクリプト)はアプリケーションの寿命を通して一度だけロードされます。 データのみが前後に送信されます。,
  • 開発は簡素化され、合理化されています。 ありませんを書く必要があるコードを描画するページ、サーバーにコピーします。 通常、サーバーをまったく使用せずにfile://URIファイルから開発を開始できるため、開始する方がはるかに簡単です。
  • Spaは、ネットワーク操作を監視し、ページ要素とそれに関連付けられたデータを調査できるため、Chromeで簡単にデバッグできます。
  • で容易にモバイルアプリケーションから開発を再利用することも可能で、同じエンコードのためのウェブアプリケーションネイティブモバイルアプリケーシ
  • SPAは任意のローカルストレージを効果的にキャッシュできます。, アプリケーショ

シングルページアプリケーションの短所:

  • シングルページアプリケーションのSEO最適化を行うのは非常に難しく、簡単な作業ではありません。 そのコンテンツはAJAX(非同期JavaScriptとXML)によってロードされます—ページを更新せずにアプリケーションでデータを交換して更新する方法です。
    更新27.09.2017:彼女のコメントでは、Iris Shafferは、サーバー側でも行うことができることを正しく指摘しました。 確かに、それは以前よりも今日は簡単です。,
  • 重いクライアントフレームワークをクライアントにロードする必要があるため、ダウンロードが遅くなり
  • これは、JavaScriptが存在し、有効にする必要があります。 ユーザーが自分のブラウザでJavaScriptを無効にした場合、アプリケーションとそのアクションを正しい方法で提示することはできません。
    更新27.09.2017:彼女のコメントでは、Iris Shafferは、同型レンダリング/サーバー側レンダリングでは、すでにサーバー上のページをレンダリングできることに気づきました。 が当初の描画をサーバにキャッシュする、無効JSとなるものではない懸念が描画されるページです。, 理論的には、そうです。 もちろんですが、レンダリングできるサーバ側です。 しかし、JSの欠如は他の機能にとって懸念される可能性があります。 多くのことはHTML&CSSで行うことができますが、私の経験からはJavaScriptを使用する代わりにこの方法で行うのは地獄です。
  • “従来の”アプリケーションに比べて、SPAはあまり安全ではありません。 によるクロスサイトスクリプティング(XSS)をもとに、攻撃者の注入をクライアント側のスクリプトへのウェブアプリケーションに他のユーザー,
  • JavaScriptのメモリリークは、強力なシステムが減速する原因となることさえあります
  • このモデルでは、戻ると進むボタンが機能しなくなります。
    更新27.09.2017:今日、それはもう問題ではありません。

マルチページアプリケーション

マルチページアプリケーションは、”伝統的な”方法で動作します。 すべての変更は、例えば。 ブラウザでサーバーから新しいページをレンダリングするデータを表示するか、サーバー要求にデータを これらのアプリケーションは、必要に応じてSpaよりも大きく、大規模です。 によりの量のコンテンツ、これらのアプリケーションを多くのレベルのポートします。, 幸いなことに、それはもう問題ではありません。 コAJAXいることを心配する大きくて複雑な用途への移転は多くのデータとサーバーとブラウザです。 そのソリューションが良くなることができるリフレッシュのみの特定の部分のものに限ります。 一方、単一ページのアプリケーションよりも複雑さが増し、開発が難しくなります。

複数ページアプリケーションの長所:

  • これは、アプリケーション内のどこに行くかの視覚的なマップを必要とするユーザーのための完璧なアプローチ, 固体、少数の水平なメニュー運行は従来の複数のページの適用の必要な部分である。
  • 非常に良いと適切なSEO管理のための簡単です。 でより良いチャンスにランクの異なるキーワードからアプリケーションは、この最適化のための一つのキーワード枚数は正確にお申し出下さい。

複数ページアプリケーションの短所:

  • モバイルアプリケーションで同じバックエンドを使用するオプションはありません。
    更新27.09.2017:当時、私はこの記事を書いていたとき、私はバックエンドとモバイルアプリで多くの経験を持っていませんでした。, 両方に同じバックエンドを使用できるようになったのは明らかです。 そして、私はそれを指摘したすべての読者に感謝したいと思います。
  • フロントエンドとバックエンドの開発は密に結合されています。
  • 開発は非常に複雑になります。 のスムーズに対応する利用枠はクライアントとサーバ側です。 この結果、アプリケーション開発の時間が長くなります。li>

SPAまたはMPA?

webアプリケーションをデプロイする前に、その目標を検討する必要があります。, 複数のカテゴリが必要であることがわかっている場合(たとえば、オンラインショップを運営したり、他の多くのコンテンツを公開したりするため)— あなたの場所が純粋な単一ページの経験のために適切であることを確信したら-それのために行きなさい。 場のようなスパもできるだけでやっと止められるほどの全てを単一のページを考慮するハイブリッドサイトです。 これは私が前に言及していない別の方法です。 ハイブリッドアプリケーショ, では、実際には、単一のページアプリの利用URLのアンカーとして合成ページをより構築のブラウザのナビゲーションや好み可能です。 しかし、これは別の記事のトピックです。

それは多くの利点をもたらすように思われるように、おそらく将来的には、誰もが、(ハイブリッドアプリを含む)単一ページのアプリケーションモデルを 市場にある多くのアプリがこのモデルに移行しています。 但し、あるプロジェクトが鉱泉に単に合うことができないのでMPAモデルはまだ鮮明である。

もともとPaweš Skólskiによって出版されましたneoteric.eu/blog 第1回(2016年)に開催された。