ホームページ ウェブフロントエンド htmlチュートリアル シングルページアプリケーションのエクスペリエンスに関する質問

シングルページアプリケーションのエクスペリエンスに関する質問

Oct 02, 2017 pm 07:42 PM
経験 使用 質問

---コンテンツの復元が開始---

##シングルページ アプリケーションとは何ですか? いわゆるシングルページ アプリケーションとは、システム全体でも 1 ページ (1 つの HTML) しかなく、すべてのビジネス機能が 1 つのページに統合されているものを指します。 -モジュール。 特定の方法でメインインターフェイスに接続します。

##なぜ単一ページのアプリケーションがあるのでしょうか? Ajax テクノロジーの出現の理由の 1 つは、Web ページにアクセスしたユーザーがページを更新せずにページ上のデータの変更を確認できるようにするためであることがわかっています。 ajax によってエクスペリエンスが向上すると言えます。

インターネットの発展に伴い、ブラウザーによって提供されるサービスはますます複雑になり、Web フロントエンドはもはや単純なページ、つまり ajax で部分的に更新できるガジェットではありません。数十のサブページを備えたアプリケーションは、市場のどこにでも見つかります。これらのサブページは多くの共有リソース (静的および動的) を共有しているため、それらのリソースを繰り返し読み込むことを避けたい場合は、それらのリソースを 1 つの HTML に入れるという明白な方法があります。

つまり、これは ajax テクノロジーをさらに昇華させたもので、ajax のリフレッシュフリーのメカニズムを極限まで高めたもので、デスクトップ プログラムに匹敵するスムーズなユーザー エクスペリエンスを生み出すことができます。

##シングルページ アプリケーションによって引き起こされる問題
HTML に 12 ~ 20 個のサブページ プログラムを配置する場合、カットアンドペーストでは解決できないことはわかっています。もともと無関係なプログラムをまとめた結果が、プログラミングの世界の質量エネルギー方程式です。 エラー = (その他のコード)^2

##シングルページ アプリケーションのエクスペリエンス
本題の操作エクスペリエンスを向上させる方法に戻ります。単一ページのアプリケーションをできるだけ多くするか?

次に、

1. ページの初期読み込み速度
2. ページデータの正確性 (特に異常なネットワーク条件下)
を含む、ユーザー エクスペリエンスに影響を与えるものを見てみましょう。
--
実際、最初の 2 つの点については多くの記事で詳しく説明されていますが、ここではできるだけ簡単に言及し、3 番目の点に焦点を当てます。

####初期ページ読み込み速度
- 静的リソースのオンデマンド読み込み (適切なモジュール化を前提として、webpack や systemjs などのモジュール バンドラー ツールを使用)
- 動的リソースのオンデマンド取得 (フロントが必要)エンドデータ層) 優れたアーキテクチャ)
- サーバー側レンダリング (ページ読み込みプロセス中に、フロントエンドがデータを「取得」してページを「生成」し、サーバー側で完了します。最初の画面が表示されるアプリケーションには適していません)複雑すぎます)

### #対話型応答
- 速度: バックエンド要求、フロントエンド キャッシュ、およびその後の同期によって返されるデータ。同じデータに対する繰り返しのリクエストを避けてください。
- 例外処理: 現在、モバイル オフィスが人気です。ネットワークの状態が良くないときに、ユーザーに十分な待ち時間を与えたり、UI にプロンプ​​トを表示したりする方法は、過小評価できません

####ページ データの正確さ
さらに話したいこと はい、私たちは実際に多くの問題に遭遇し、いくつかの解決策を試してきました。

これをうまくやりたいなら、次の言葉が必要だと個人的に思います: **「適切なキャッシュ管理」**、ここでのキャッシュはフロントエンド キャッシュ モデルを指します。

これらのいくつかの単語だけを見ないでください。それは非常に難しいです。なぜ?

#### まずメモリのソースについて話しましょう。次のタイプがあります:

- ブラウザキャッシュ (indexDB、localStorage など)
- http リクエスト
- webSocket プッシュ

異なるソースが同じデータに影響を与える適切な抽象化により、ビジネス層がデータ ソースの認識を保護できるようになります。この問題を解決するために広く使用されている既存のライブラリには、RxJ、CycleJS などが含まれます。MVI の概念も、すべてこの目的のために以前に提案されました。

#### 記憶の変化について話しましょう

言うまでもなく、ここで紹介する異常状態はほんの数種類です。

#####httpリクエストが失敗しました

ここで**「操作補償」**という言葉について言及する必要があります

操作補償とは何ですか?

論理的に言えば、インターフェースを操作してタスクを作成するとき、新しいタスクはすぐに表示されるべきではなく、サーバーが成功を確認するまで待ってからインターフェースに追加する必要があります。ただし、ネットワークが良好ではない可能性が非常に高く、ユーザーはこのステップで長時間待たなければなりません。ユーザー エクスペリエンスの観点からすると、これは良くないので、最初にインターフェイスを作成し、作成が成功したというメッセージが返された後に、いくつかの一意の識別子などをメモリ データに埋め戻すことができます。

単一ステップの操作の補正はそれほど難しくありません。たとえば、ユーザーが新しいタスクを追加しても、サーバーがすぐにサブタスクを作成しない場合、非常に面倒になります。このタスクの下にありますが、この時点ではサブタスクには親タスクの ID がありません。この手順を補う必要がある場合は、さらに面倒になります。いくつかの連続した操作を行った後に、前の操作が失敗していたことがわかり、その後の処理が非常に複雑になるということさえあります。

当社の製品でもこの問題が発生します。私たちのアプローチは、**「妥協」**、重要なデータについては 1 段階補正または 2 段階補正を行うことです。フロントエンドモデルの依存関係が複雑で上位モデルの書き込み操作が失敗した場合、または補正の手順が多すぎる場合は、事前にユーザーに通知され、UI上でユーザーのインタラクション入口がロックされます。後続の書き込み操作は避けてください。

ここで引き続き実行する場合も、操作の結果はクライアント上でローカルに記録され、その後、データがバックグラウンドで同期されます。 。


#####切断と再接続

ネットワークのジッター、ネットワークの切り替え、コンピューターの休止状態と再起動などにより、ユーザーが再びインターネットに接続するときに、アプリケーションはより複雑なネットワーク状況に直面する必要があります。再リンクに進みます。

現時点では、理想的な単一ページ アプリケーションは、再接続時に、以前のすべてのイベントの最終結果、つまり最新のステータスを同期して戻します。

私たちのアプリケーションは共同ビジネスです。同じ企業内のユーザーが同じモデルを共有し、webSocket を通じて同期して、モデルの即時性と正確性を確保します。したがって、これは私たちにとって大きな挑戦でもあります。私たちの解決策は、webSocket を再送信することです。

#####ホットアップデート

前述したように、ユーザーはアプリケーションを開いたまま長時間放置し、途中で更新しない可能性があります。通常の状況では、すべてのビジネス変更は延期される必要があり、インターフェイスによってフィードバックされるステータスは常に最新であり、現在の状況と一致しています。しかし、別の問題を考慮する必要があります。システムのアップグレードについてはどうでしょうか?

もちろん、通知をプッシュすることもできます: このシステムはアップグレードされました。更新をクリックしてください。しかし、もっと良くできるでしょうか?この目標を達成するには、ホット アップデートを使用して、コードの究極のモジュール化と変更管理を達成する必要があります。更新された各コード モジュールも、システム上の現在のコードにプッシュされ、適用されます。このメカニズムには、開発チームの高い基準が必要です。

#####最後に
「単一ページの製品の技術レベルをどのように判断するか?」という格言を聞いたことがあります。
数日間オンにしても、アプリケーションは正常に、正しく、スムーズに使用できます。

シングルページの申請書を作ったことのある学生ならこの意味が分かると思います。

##まとめ

たくさんお話しましたが、まとめさせていただきます。シングルページアプリケーションのエクスペリエンスを改善するためのいくつかの問題点と方法について述べてきましたが、実装されればユーザーは間違いなく非常に満足しますが、理想と現実のギャップを冷静に検討する必要があります。私たちがやっていることはソフトウェアエンジニアリングなので、美学を適切に放棄し、限られた人間のエネルギーを要所要所に投資する必要があります。

---リカバリコンテンツの終了---

以上がシングルページアプリケーションのエクスペリエンスに関する質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

地理情報科学を専攻する人はどのコンピュータを選択すべきですか? 地理情報科学を専攻する人はどのコンピュータを選択すべきですか? Jan 13, 2024 am 08:00 AM

地理情報科学を専攻する学生に適した推奨コンピュータ 1. 推奨 2. 地理情報科学を専攻する学生は、大量の地理データを処理し、複雑な地理情報分析を行う必要があるため、強力なパフォーマンスを備えたコンピュータが必要です。高度な構成を備えたコンピューターは、より高速な処理速度とより大きなストレージ容量を提供し、専門家のニーズをより適切に満たすことができます。 3. データ処理や分析の効率を向上させる、高性能プロセッサと大容量メモリを搭載したコンピュータを選択することをお勧めします。さらに、より大きなストレージ容量と高解像度ディスプレイを備えたコンピューターを選択すると、地理データと結果をより適切に表示できます。さらに、地理情報科学を専攻する学生は、地理情報システム (GIS) ソフトウェアの開発とプログラミングが必要になる可能性があることを考慮して、より優れたグラフィックス処理サポートを備えたコンピューターを選択してください。

クラスタリングアルゴリズムにおけるクラスタリング効果評価問題 クラスタリングアルゴリズムにおけるクラスタリング効果評価問題 Oct 10, 2023 pm 01:12 PM

クラスタリング アルゴリズムのクラスタリング効果評価問題には、特定のコード例が必要です クラスタリングは、データをクラスタリングすることによって、類似したサンプルを 1 つのカテゴリにグループ化する教師なし学習手法です。クラスタリングアルゴリズムでは、クラスタリングの効果をどのように評価するかが重要な問題となります。この記事では、一般的に使用されるいくつかのクラスタリング効果評価指標を紹介し、対応するコード例を示します。 1. クラスタリング効果評価指標 シルエット係数 シルエット係数は、サンプルの近さや他のクラスタとの分離度を計算することでクラスタリング効果を評価します。

推奨される Java 逆コンパイル ツール: 究極のエクスペリエンスをもたらす最も人気のある 5 つのツール 推奨される Java 逆コンパイル ツール: 究極のエクスペリエンスをもたらす最も人気のある 5 つのツール Dec 26, 2023 am 09:00 AM

究極の逆コンパイル体験: 最も人気のある 5 つの Java 逆コンパイル ツールを推奨します。 はじめに: テクノロジーの発展に伴い、ソフトウェアのセキュリティと知的財産保護の重要性がますます高まっており、逆コンパイル テクノロジーは重要な手段です。この記事では、究極の逆コンパイル体験を体験できる、最も人気のある 5 つの Java 逆コンパイル ツールを紹介します。 1. JD-GUI JD-GUIは、シンプルな操作性と親しみやすいインターフェースを特徴とするオープンソースのJava逆コンパイルツールです。 JD-GUIを使用して、Javaクラスファイルを反転できます。

iPhone の一般的な問題を診断する方法を教えます iPhone の一般的な問題を診断する方法を教えます Dec 03, 2023 am 08:15 AM

強力なパフォーマンスと多彩な機能で知られる iPhone は、複雑な電子機器によく見られる、時折起こる問題や技術的な困難を免れません。 iPhone の問題が発生するとイライラすることもありますが、通常は警報を発する必要はありません。この包括的なガイドでは、iPhone の使用に関連して最も一般的に遭遇する課題のいくつかをわかりやすく説明することを目的としています。当社の段階的なアプローチは、これらの一般的な問題の解決に役立つように設計されており、機器を最高の動作状態に戻すための実用的な解決策とトラブルシューティングのヒントを提供します。不具合やより複雑な問題に直面している場合でも、この記事はそれらを効果的に解決するのに役立ちます。一般的なトラブルシューティングのヒント 具体的なトラブルシューティング手順を詳しく説明する前に、役立つ情報をいくつか紹介します。

jQueryがform要素の値を取得できない問題の解決方法 jQueryがform要素の値を取得できない問題の解決方法 Feb 19, 2024 pm 02:01 PM

jQuery.val() が使用できない問題を解決するには、具体的なコード例が必要です フロントエンド開発者にとって、jQuery の使用は一般的な操作の 1 つです。その中でも、.val() メソッドを使用してフォーム要素の値を取得または設定する操作は、非常に一般的な操作です。ただし、特定のケースでは、.val() メソッドを使用できないという問題が発生する可能性があります。この記事では、いくつかの一般的な状況と解決策を紹介し、具体的なコード例を示します。問題の説明 jQuery を使用してフロントエンド ページを開発する場合、時々次のような問題が発生します。

弱教師学習におけるラベル取得問題 弱教師学習におけるラベル取得問題 Oct 08, 2023 am 09:18 AM

弱教師あり学習におけるラベル取得問題には、特定のコード例が必要です はじめに: 弱教師あり学習は、トレーニングに弱いラベルを使用する機械学習手法です。従来の教師あり学習とは異なり、弱教師あり学習では、各サンプルに正確なラベルが必要ではなく、より少ないラベルを使用してモデルをトレーニングするだけで済みます。しかし、弱教師あり学習では、弱いラベルから有用な情報をいかに正確に取得するかが重要な問題となります。この記事では、弱教師あり学習におけるラベル取得問題を紹介し、具体的なコード例を示します。弱教師学習におけるラベル獲得問題の紹介:

機械学習モデルの汎化能力の問題 機械学習モデルの汎化能力の問題 Oct 08, 2023 am 10:46 AM

機械学習モデルの汎化能力には特定のコード例が必要ですが、機械学習の開発と応用がますます普及するにつれて、機械学習モデルの汎化能力に対する注目が高まっています。一般化能力とは、ラベルなしデータに対する機械学習モデルの予測能力を指し、現実世界におけるモデルの適応性としても理解できます。優れた機械学習モデルは、高い汎化能力を備え、新しいデータに対して正確な予測を行うことができる必要があります。ただし、実際のアプリケーションでは、トレーニング セットでは良好なパフォーマンスを示しても、テスト セットや実際のテストでは失敗するモデルに遭遇することがよくあります。

win11インストール後にスタートメニューが使えなくなる問題の解決方法 win11インストール後にスタートメニューが使えなくなる問題の解決方法 Jan 06, 2024 pm 05:14 PM

多くのユーザーが win11 システムを更新しようとしましたが、更新後にスタート メニューが使用できないことがわかりました。最新の更新プログラムに問題があることが原因である可能性があります。Microsoft がこれらの更新プログラムを修正するか、アンインストールして問題を解決するのを待つことができます。問題です。一緒に見てみましょう。解決策。 win11 インストール後にスタートメニューが使用できない場合の対処方法 方法 1: 1. まず、win11 でコントロール パネルを開きます。 2. 次に、プログラムの下にある [プログラムのアンインストール] ボタンをクリックします。 3. アンインストール インターフェイスに入り、左上隅にある [インストールされたアップデートの表示] を見つけます。 4. 入力後、アップデート情報でアップデート時間を確認し、最近のアップデートをすべてアンインストールできます。方法 2: 1. さらに、更新なしで win11 システムを直接ダウンロードすることもできます。 2.これはほとんどのない製品です

See all articles