Лучшая производительность? 200+ отдельных страниц результатов или 200+ условий (если еще лестница или случай переключения?) За один раз в Javascript / Jquery Mobile

0

Я создаю локальное/статическое мобильное приложение, используя jQuery mobile + phonegap. Поскольку я хочу быть наименее зависимым от получения серверной части, я решил пойти на размещение результирующих файлов (по крайней мере 200+ одинаковых страниц с отдельными результатами таблицы). Для второй мысли, это, безусловно, увеличит размер приложения. Поэтому я пришел к выводу о наличии единственной результирующей страницы с условными результатами. Проблема в том, что прибл. 200+.

Следовательно, я немного смущен, куда идти. Если нужно выбрать условный оператор, какой из них следует использовать для лучшей производительности, поскольку я, конечно же, могу увеличить загрузку результатов приложения, в этом случае,

  • если иначе лестница,

как

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.

Независимо от того, что может повысить производительность в качестве локально хранимого приложения для смартфонов (любого из трех)

  • 0
    If-else и switch, вероятно, предоставят вам аналогичный размер и производительность приложения. Разве невозможно динамически генерировать страницы на клиенте, а не предоставлять 200 страниц в жестком коде?
  • 0
    @frequent Спасибо за предложение. Будучи новичком в этой области, я нахожусь в небольшом недостатке знаний. Можете ли вы привести меня к хорошему учебнику по тому же, пожалуйста?
Теги:
cordova
jquery-mobile

2 ответа

1
Лучший ответ

Если я правильно понял ваш вопрос, вы пытаетесь решить между лестницей else/if и оператором switch. Оператор switch будет менее интенсивным с процессором и вашим лучшим вариантом между ними. В этом случае код будет содержать небольшую комбинацию сравнений с оператором switch или 100 сравнений, если вы используете лестницу if/else.

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

Вероятно, это приведет к гораздо меньшему количеству сопоставлений и, надеюсь, будет обрабатывать сразу несколько случаев. А также мешает вам случайно поймать случай, который вы не намерены ловить.

  • 1
    Я отредактировал вопрос, чтобы прояснить мою точку зрения, если это поможет. Я обеспокоен производительностью и размером приложения. Что-то, что выявляет баланс между размером и производительностью
  • 0
    Я отредактировал свой ответ. Я думаю, что вы захотите использовать оператор switch для сокращения необходимых циклов процессора.
Показать ещё 3 комментария
1

Разумеется, вы также можете сохранить все свои данные в массиве или объекте, а затем извлечь отдельные элементы через

dipslayData(data[somevar])

с подходящей функцией displayData. Это может быть более эффективным или читаемым, чем коммутатор. Он также может быть более читабельным, чем переключатель, потому что вы можете отделить поведение своих действий с вашими "переменными" и определить их.

В конце концов, однако, вы должны сделать сравнение производительности из воздуха. Во-первых, вы должны знать, что вам действительно нужна производительность. Во-вторых, вы должны профилировать, т.е. Измерять, сколько времени займет часть вашей программы. Исходя из этого, вы можете оптимизировать свои самые горячие, самые оптимистичные функции. Некоторые веб-браузеры, такие как Google Chrome, встроены в инструменты профилирования.

И профилирование потрясающее и веселое :)

  • 0
    Полезное предложение и знания. Можете ли вы привести меня к примеру использования / учебник относительно его использования, пожалуйста?
  • 1
    Здесь вопрос о SO: ссылка, и вот пример того, как сделать это в ссылке Chrome. Это полезные знания, которые переносятся и в другие среды программирования.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню