2009-09-30 8 views
8

シングルページのWebアプリケーションで実験しましたか?つまり、ブラウザが1つのページをサーバーから取得し、残りはクライアントサイドのJavaScriptコードで処理されます(このような 'アプリケーションページ'はGmailです)?1ページのみjavascriptアプリケーション

より簡単なアプリケーション(ブログやCMSなど)でこのアプローチを使用すると、プロとは何か?

このようなアプリケーションの設計についてはどうしますか?


編集:回答に記載されているとおり、難しいのは、戻るボタン、更新ボタン、ブックマーク/コピーURLを処理することです。後者はlocation.hashを使用して解決できます。これは残りの2つの問題についての手掛かりです。

答えて

5

私はこれらの1ページのアプリを「長寿命」のアプリと呼びます。

「シンプルなアプリケーション」の場合は、ひどいです。私は言っていませんブックマーク/コピーURL

  • 更新ボタン

    • 戻るボタン

    注:ブラウザの突然の特別なケアと注意が必要なのすべてをOOTBを働くもの単一ページのアプリケーションではこれらのことを行うことはできません。アプリケーションコードにそれらを組み込む努力が必要だと言います。異なるURLで異なるリソースがあれば、開発者の労力を要しません。

    は今、Gmailなどの複雑なアプリケーションのために、Googleマップでは、利点があります:アプリケーションの

    • ユーザ知覚応答性がドン(上がる例えば、スクロールバーも
    • アプリケーションのユーザビリティを向上させることができます「tは、ユーザの思考が小さな行動だったものをクリックしたときにHTTP要求 - >レスポンス中に
    • )新しいページの一番上に何の白い画面のちらつきをジャンプしない

    ワン長寿命アプリの懸念はメモリリークです。各ユーザーのアクションごとに新しいページを要求する従来のサイトでは、ブラウザがメモリを再利用できる程度にDOMおよび使用されていないオブジェクトを破棄するという追加の利点があります。新しいブラウザでは、これとは異なる仕組みがありますが、IEを例に取ることができます。 IEは、長寿命アプリの寿命中に定期的にメモリをクリーンアップするために特別な注意が必要です。これは最近、図書館によってやや簡単になりましたが、決して簡単なことではありません。

    多くのことがそうであるように、ハイブリッドアプローチは素晴らしいです。それはページ/ URLでアプリケーションの部分を分離しながら、特定のコンテンツを遅延読み込むためにJavaScriptを活用することができます。

  • 3

    JavaScript以外のWebサイトとは対照的に、ブラウザがページ間でちらつきを起こす可能性があります。帯域幅の使用量が少なくなるだけでなく、サーバーから完全なWebページを戻す代わりに、リフレッシュする必要がある重要な部分を処理した結果が分かります。

    この背後にある主な理由は、アクセシビリティの問題です。 JavaScriptを使用していないユーザー(または無効にするユーザー)は、AJAXを使用してリクエストが行われたかどうかによって、応答する内容を決定するための深刻なサーバー側コーディングを行わない限り、Webサイトを使用できません。使用する(サーバー側の)Webフレームワークに応じて、これは簡単でも非常に面倒かもしれません。

    ではありません。では、JavaScriptを使用しているユーザーに完全に依存するウェブサイトを作成することをお勧めします。

    +0

    Javascriptを無効にしていますか?圧倒的多数のユーザーが有効にしていないのでしょうか?最近のほとんどのポピュラーなウェブサイトでは、javascript(Gmail、Facebook、Youtube)が必要です。最近使用されている機能の低いブラウザはIE 6になると信じています。 –

    +0

    Google MailにはJavaScript AFAIKは必要ありません。 LynxなどのブラウザやFirefoxのNoScriptプラグインでGMailにアクセスしようとすると、HTMLのみのエクスペリエンスになります。 –

    0

    iPhone用のWebアプリケーションとして、この種のページを作成していました。私の方法は、すべてを1つの巨大なindex.htmlファイルに入れて、特定のコンテンツを非表示にすることでした。この表示と非表示、つまりページのナビゲーションは、ページ内の部品の表示を処理するために必要な機能がある特別なjavascriptファイルで制御します。

    プロ:すべてが最初に読み込まれ、サーバーから何も要求する必要はありません。コンテンツの「切り替え」とアクションの実行は非常に高速です。

    Con:最初に、すぐに表示する必要があるコンテンツがたくさんある場合は、まずすべてが読み込まれ、時間がかかることがあります。

    別の問題は、接続がダウンすると、実際にサーバー側が必要になるまで、ユーザーは実際に気付かないということです。 Gmailでも気付くことができます。 (それは時には肯定的なものになることがあります)。

    希望すると助かります! greets

    +0

    最初のページのすべてをハードコードするのはなぜですか? Ajaxを使用してコンテンツを怠けることはできませんでしたか?これにより、最初の読み込み時間が短縮され、実際に必要なときに小さなチャンクを読み込むことができます。 – moxn

    +0

    私の場合、初めにすべてをロードするのは良いことでしたが、ええ、あなたは完全に正しいです.AJAXをロードすることはここでは自然なことです。 – cssmaniac

    0

    通常、GWT、Echo2などのフレームワークを使用します。

    このアプローチの利点は、アプリケーションがデスクトップアプリケーションのように感じることです。サーバーの速度が十分速ければ、ユーザーは前後に移動する多数の小さなデータパケットに気付かないでしょう。また、ページを最初からロードするのは高価な操作です。その一部を変更するだけであれば、ブラウザは既存のモデルを多くメモリに保持し、変更された部分を変更することができます。

    これらのフレームワークのもう1つの利点は、純粋なJavaでアプリケーションを開発できることです。つまり、他のJavaアプリケーションと同じようにIDEでデバッグしたり、単体テストを書いたり、自動的に実行したりすることができます。

    3

    AJAXを使用したWebサイトの主な不具合これまでのところ、サイトの内容に「深い」ページをブックマークする機能を失うことです。ユーザーがページをブックマークすると、ブックマークを作成したときにどのようなコンテンツが表示されていたかにかかわらず、常にサイトの「フロント」ページが表示されます。

    +3

    これは最近、URLの 'hash'部分を使ってJavaScriptアプリケーションのブックマークページを許可することで対処されています。 Gmailはこれの素晴らしい例です。すべての電子メールは、JavaScriptを使用して生成されていてもブックマークできます。 ASP.NET(および他のフレームワーク、私は確信しています)はすでにAJAXアプリケーションのフレームワークにこの機能を組み込んでいます。 –

    +0

    URLのハッシュ部分ですか?これはクエリ文字列と同じですか?親ページのURLを変更しても、そのページの再読み込みが強制されませんか?私は非常に興味があります - 例へのリンクを持っていますか? – Matt

    +0

    jQueryを使用している人は履歴プラグインの機能を利用してこれを達成できます。http://www.mikage.to/jquery/jquery_history.html – James

    1

    これを避ける主な理由は、それだけでは非常に検索に不安があるということです。それは一般的に検索可能である必要はないGMailのようなWebアプリケーションにとってはいいですが、あなたのブログやCMS主導のサイトにとっては災害になるでしょう。

    もちろん、単純なHTMLバージョンを作成してプログレッシブ・エンハンスすることもできますが、両方のバージョンですぐにうまく動作させることができます。

    0

    低速のマシンでは、JavaScriptを大量に使用するとブラウザが停止することがあります。すべてのレンダリングがクライアント側で行われるため、ユーザーがハイエンドのコンピュータを使用していないと、経験が失われます。私の仕事用コンピュータは2GBのRAMを搭載したP4 3.0GHZで、JavaScriptの重いサイトでは糖蜜よりも遅くなってしまい、実際に私のユーザーエクスペリエンスが失われてしまいます。

    2

    SproutCore(Apple MobileMe用)またはCappuccinoをチェックしてください。これは、JSONまたはXML経由でサーバーからの応答のみを取得するデスクトップのようなインターフェイスを設計するためのJavascriptフレームワークです。

    ブログのいずれかを使用することは良い考えではありませんが、よく設計されたデスクトップのようなブログ管理領域が使用するのが喜びかもしれません。

    +0

    私が心に持っていたもの、フレームワークのおかげで! –

    関連する問題