0

jquery mobile+phonegap を使用して、ローカル/静的モバイル アプリを構築しています。サーバー側の取得への依存を最小限にしたいので、結果ファイル (個々のテーブル結果を含む少なくとも 200 以上の同じ外観のページ) を配置することを考えました。考え直してみると、それは確かにアプリのサイズを大きくします。そこで、条件付きの結果を含む単一の結果ページを持つという結論に達しました。問題は、約があることです。200以上の結果。

というわけで、どちらに行こうか少し迷っています。条件ステートメントを選択する必要がある場合、パフォーマンスを向上させるためにどちらを使用するかは、アプリの結果の読み込みを確実に増やしている可能性があるためです。この場合、

  • if else はしご、

お気に入り

if(someVar==1)
  <//Display so and so variable and image values at placeholders and header on result.html>;

else if(someVar==2)
  <//Display so and so variable and image values at placeholders and header on result.html>;

else if(someVar==3)
  <//Display so and so variable and image values at placeholders and header on result.html>;
.
.
.
.
else if(someVar==200)
  <//Display so and so variable and image values at placeholders and header on result.html>;

または - スイッチケース?

お気に入り

switch(someVar){
  case 1: <//Display so and so variable and image values at placeholders and header on result.html>;
          break; 
  case 2: <//Display so and so variable and image values at placeholders and header on result.html>;
    break;
  case 3: <//Display so and so variable and image values at placeholders and header on result.html>;
    break;
  .
  .
  .
  case 200: <//Display so and so variable and image values at placeholders and header on result.html>;
    break;

}

または、result1.html、result2.html、result3.html などの異なる結果ページを含むことさえあります。

ローカルに保存されたスマートフォン アプリとしてパフォーマンスが向上するもの (3 つのいずれか)

4

2 に答える 2

1

もちろん、すべてのデータを配列またはオブジェクトに保存してから、個々の要素を取得することもできます

dipslayData(data[somevar])

適切なdisplayData機能を備えています。これは、スイッチよりも効率的で読みやすい場合があります。また、「変数」で行う動作とそれらを定義する場所を分離できるため、スイッチよりも読みやすい場合があります。

ただし、最終的には、どこからともなくパフォーマンスを比較する必要があります。まず、パフォーマンスが本当に必要であることを知っておく必要があります。次に、プロファイルを作成する必要があります。つまり、プログラムの各部分にかかる時間を測定します。これに基づいて、最もホットで最適化に値する関数を最適化できます。Google Chrome などの一部の Web ブラウザーには、プロファイリング ツールが組み込まれています。

そして、プロファイリングは最高で楽しいです:)

于 2013-10-26T08:35:28.990 に答える
1

私があなたの質問を正しく理解していれば、else/if はしごと switch ステートメントのどちらかを決定しようとしています。switch ステートメントは、CPU の負荷が少なくなり、2 つの間の最適なオプションになります。if/else ラダーを使用した場合、コードは、switch ステートメントを使用した場合、平均で 100 回の比較を行いますが、ほんの一握りの比較を行います。

switch(someVar){
  case 1:
    <handle case 1>
    break;
  case 2:
    <handle case 2>
    break;
  case 3:
    <handle case 3>
    break;
  .
  .
  .
}

これにより、おそらく比較がはるかに少なくなり、うまくいけば一度に複数のケースを処理できます。また、キャッチするつもりのないケースを誤ってキャッチすることも防止します。

于 2013-10-26T07:07:06.370 に答える