純粋な HTML5 アプリとネイティブ アプリの違いは何ですか?

純粋な HTML5 アプリとネイティブ アプリの違いは何ですか?

私は純粋な H5 アプリをいくつか作成しました。これらは開発が高速で快適ですが、ネイティブ アプリと比較すると、主に次の点で多くの問題が残っています。

1. アニメーション

アニメーションには、サイドバー メニューのスライドインとスライドアウト、要素のレスポンシブ アニメーション、ページ切り替え間の遷移など、さまざまな種類があります。H5 での多くの実装方法では、純粋なネイティブ パフォーマンスを実現できません。一般的に、これらには CSS3 アニメーション、JavaScript アニメーション、ネイティブ アニメーションなど、いくつかの異なるオプションがあります。

CSS3 アニメーションはパフォーマンスを大量に消費します。特定の要素が CSS3 アニメーションを使用している場合、その要素は表示されない可能性がありますが、広い領域やトランジションで CSS3 アニメーションを使用すると、低スペックの携帯電話でのアプリのエクスペリエンスが非常に悪くなります。通常、最善のオプションは、フレームワークを通じて基礎となるアニメーションを呼び出すことですが、いずれにしても、元のコードにレイヤーをラップすることと同じであり、パフォーマンスは必然的に影響を受けます。

たとえば、新しいページを読み込むときに、基になるアニメーションを呼び出す場合、考慮すべき問題が 2 つあります。1 つはリソース ページ自体のレンダリングであり、もう 1 つはリモート データの取得です。これらのアニメーションはすばやく応答できますが、CSS ページが大量にあるとレンダリングが滞り、スライドイン時に白い画面やマシンの滞りが発生する可能性があります。これらのパフォーマンスの問題を解決するには、プリロードまたはシミュレーション アニメーションを使用する必要があります。それでも、スライドインとスライドアウトのアニメーションは、ローエンドの Android マシンでは依然として多くの問題を抱えています。サーバー側のデータ取得処理方法が適切でない場合、フリーズや白い画面の現象はさらに深刻になります。詳細については、以下のデータ取得方法を参照してください。

2. サーバーデータを取得する

最初に受け入れるべきことは、ここでのデータ取得がリソース ページで非同期的に行われることです。この方法でのみ、これらのリソース ページをプリロードまたはレンダリングできるためです。ただし、非同期で取得したデータをページに埋め込むときに、DOM 操作が関与する場合があります。ご存知のように、DOM 操作はパフォーマンスを大量に消費します。ページが小さい場合は、それほど問題にはなりません。しかし、ページにもう少し多くのデータが含まれており、もう少し複雑な場合は、頻繁な DOM 操作によって明らかな白いちらつきが発生します。そして最も重要な点は、ページが読み込まれた後のデータの更新が遅すぎると、ページテンプレートが長時間待たされることになり、ユーザーフレンドリーではないということです。ブラウザのように開くたびに更新を待つことはできませんよね?

この問題が解決されなければ、H5APP は大量のデータを持つページを処理するのが難しくなり、頻繁に切り替えるのはさらに難しくなります。そうなると、誰かが MVVM の使用を必ず考えるでしょう。実際、私も MVVM をベースにした H5APP をいくつか書きました。相対的に言えば、それらのデータの取得と更新の方法はより機敏で科学的ですが、執筆の過程では、H5 特有の多くの問題に注意を払う必要があります。これらの問題については、以下のページ切り替えで説明します。

3. ページ切り替え

上記では、プリロードやシミュレーションアニメーション、さらにはバッチプリロード、バッチスクリーンショットシミュレーションアニメーションなど、いくつかの優れた実装方法を見てきました。これらはフレンドリーで多くの問題を解決しているように見えますが、実際には、ページ数が十分にあると、ページのライフサイクルという別の問題が発生します。

ブートページまたはメインページが 5 つのサブページのリソースをキャッシュし、対応するサブページにジャンプすると、これらのサブページの従属ページリソースがキャッシュされると想像してください。これは間違いなく大量のメモリを消費し、APP エクスペリエンスを低下させます。では、どのページが必要か、最大何ページをキャッシュする必要があるか、どのページのライフサイクルをいつ終了するかをどうやって知るのでしょうか?私が使用した多くの H5APP フレームワークには、これらの問題に対する完璧な解決策がないため、ページ数やコンテンツ数が多いアプリでは、これらのリソース割り当ての問題によりパフォーマンスが低下する可能性があります。

ここで、MVVM のデータ読み込み問題を振り返ってみましょう。実際、どの MVVM フレームワークであっても、それを書いたことがある人なら誰でも、この新しいタイプのフロントエンド コードを管理する上で最も重要な問題はメモリであることを知っています。メモリ リークのないエレガントなコードが書かれていることを確認する必要があります。また、ページ ライフサイクルの最後にコントローラー/ページ リソースが解放されるかどうか、そしてこれがグローバルな状況に何らかの影響を与えるかどうかも考慮する必要があります。複数のリクエストの場合、リソースを合理的に割り当てる必要があり、これらの親ページから渡されるキャッシュ リソースも再利用できます。小規模なアプリではこうした問題は発生しないかもしれませんが、純粋な H5 を使用して大規模なアプリを開発する場合、多くの時間を無駄にすることになり、結果も満足のいくものにはなりません。

4. AndroidとiOSの違い

純粋な H5 アプリは、一度記述するだけで Android と iOS の 2 つの異なるアプリにコンパイルできるため、コストが大幅に削減されると多くの人が言っています。実は、この見方自体が疑問です。このタイプのアプリを書いたことがある人なら、私の言っていることが分かるでしょう。面倒なだけでなく、バ​​グも多く、デバッグが特に面倒です。簡単な例を挙げると、全画面でiOSのトップバーを処理する方法、Androidマシンでスマートバーが表示されたときのページのレイアウトを処理する方法、基盤となるハードウェアを呼び出すときに異なるシナリオを区別する方法など、前のページに戻る方法にはAndroidとiOSの間に明らかな違いがあります。モデルとシステムの判断を次々に書き、AndroidとiOSでそれぞれデバッグする必要があります。結局、それは無駄であることがわかります。疲れ果てていますが、何も学んでおらず、いつ時代遅れになるかわからない経験の集まりだけです。

現在、H5 ハイブリッド アプリを開発している人はたくさんいますが、純粋な H5 はまだ歴史が浅く、多くの問題が十分に解決されていません。これらは、私がこれらのアプリを作成するときに最も考慮する問題です。もちろん、心配する必要はありません。ES6の推進により、ハードウェアの開発はますます速くなり、純粋なH5APPがなくなることはないかもしれません。最後に、ほとんどの人が気づいていない H5 の利点についてお話しします。H5APP について話すとき、皆が迅速な開発、低コスト、マルチプラットフォームなどについて言及しますが、私は、H5APP は多くの APP 開発方法、つまりテキストと画像の混合レイアウトとは異なると考えています。複雑で変更しやすい CSS スタイルはパフォーマンスを消費しますが、タイプセッティングに多様性をもたらします。すべての単語の幅、行の高さ、スタイルをピクセルレベルで処理できるのが、H5 の優れた点です。

出典: Witt のブログ投稿、オリジナル リンク。


元のタイトル: 純粋な HTML5 アプリとネイティブ アプリの違いは何ですか?

キーワード: HTML

<<:  エンタープライズレベルのSaaSによく使われる3つの暗号化方式

>>:  ムーンライトブログのWeChat公開アカウント

推薦する

400 フォンが企業ウェブサイトの主役になった理由について簡単に説明します

昨今、あらゆる分野の発展はインターネットと切り離せないものとなっていますが、企業にとってはなおさらで...

ジャック・マーが大手Vを莱王に招待、最初のパブリックアカウントのテストを開始

モーニングポストニュース(記者 韓元佳)アリババ会長のジャック・マーは「WeChatとの別れ」を発表...

cmivps: 春節30%オフプロモーション、香港CMIラインVPS、無制限のトラフィック、「Alipay」が可能

cmivps は、香港 CMI ラインのすべての VPS を 30% 割引する大規模な春節プロモーシ...

徐暁慧:このセールは来年の「カーブでの追い越し」に備えるためのものだ

12月19日、プライベートラベル垂直型電子商取引会社Chukeが昨日売却を求めているというニュースに...

差別化を活用してウェブサイトのトラフィックを増やす

毎日、多数の Web サイトが立ち上げられ、同時に、これらの Web サイトは、検索エンジンによるク...

ビッグデータにおけるプライバシー、失敗、エラーの苦痛

この記事は、書籍『ビッグデータの時代』の第 7 章「リスク」の内容に基づいた著者の見解をまとめたもの...

タオバオプロモーションのための4つのチャネルと5つのツール

4つの主要チャネル:Taobao公式アクティビティ、Taobaoエキスパート、Taobaoメディア、...

Kubernetes API を拡張するにはどうすればいいですか?

Django は汎用 Web フレームワークですが、Kubernetes はコンテナ オーケストレー...

成功するSEO担当者が持つべきスキル

今や SEO は特別な秘密でも、神秘的なものでもありません。SEO チュートリアルはどこにでもありま...

SEO共有: Baiduウェブマスターツールは完全なガイドではない

これは、我らが偉大な百度の無料広告とみなすことができます。百度ウェブマスターツールが何であるかさえ知...

厳しい競争環境におけるタオバオ顧客ウェブサイトのキーワード戦略の分析例

タオバオアフィリエイトの経験がある多くの友人は、現金タオバオアフィリエイト間の激しい競争が悪質なレベ...

簡単な分析: 2014 年に企業はインターネット マーケティングをどのように実施すべきか

インターネットマーケティングは今や誰もが知る存在であり、アリババチームは忘れられない貢献を果たしてき...

alpharacks-年間支払い$25/4コア/1gメモリ/2gスワップ/25gハードディスク/1.5Tトラフィック/

Alpharacksは稼働して1年以上経ちました。正直、どれくらい持つか不安でしたが、今は調子が良い...

週刊ニュースレビュー: 垂直型電子商取引が苦境に陥る; YY の収益モデルが論争を巻き起こす

1. 謎のパッケージが真実を明らかにする:JD.com副社長呉勝のビジネスチェーン10月18日、呉勝...

gigsgigscloud: 香港専用サーバー、回線オプション PCCW/HKBN/CN2 GIA/CUG VIP、104 ドル、E3-1230v2/16G/1T

gigsgigscloud の香港データセンターにある独立サーバーは、非常に高いコストパフォーマンス...