Я создаю локальное/статическое мобильное приложение, используя 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.
Независимо от того, что может повысить производительность в качестве локально хранимого приложения для смартфонов (любого из трех)
Если я правильно понял ваш вопрос, вы пытаетесь решить между лестницей 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;
.
.
.
}
Вероятно, это приведет к гораздо меньшему количеству сопоставлений и, надеюсь, будет обрабатывать сразу несколько случаев. А также мешает вам случайно поймать случай, который вы не намерены ловить.
Разумеется, вы также можете сохранить все свои данные в массиве или объекте, а затем извлечь отдельные элементы через
dipslayData(data[somevar])
с подходящей функцией displayData
. Это может быть более эффективным или читаемым, чем коммутатор. Он также может быть более читабельным, чем переключатель, потому что вы можете отделить поведение своих действий с вашими "переменными" и определить их.
В конце концов, однако, вы должны сделать сравнение производительности из воздуха. Во-первых, вы должны знать, что вам действительно нужна производительность. Во-вторых, вы должны профилировать, т.е. Измерять, сколько времени займет часть вашей программы. Исходя из этого, вы можете оптимизировать свои самые горячие, самые оптимистичные функции. Некоторые веб-браузеры, такие как Google Chrome, встроены в инструменты профилирования.
И профилирование потрясающее и веселое :)