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。

任何可以作为本地存储的智能手机应用程序提供更好性能的东西(三个中的任何一个)

4

2 回答 2

1

您当然也可以将所有数据保存到数组或对象中,然后通过以下方式检索单个元素

dipslayData(data[somevar])

具有合适的displayData功能。这可能比 switch 更有效或更易读。它也可能比开关更具可读性,因为您可以将您对“变量”所做的行为与定义它们的位置分开。

不过,最后,您应该凭空进行性能比较。首先,您应该知道您确实需要性能。其次,您应该配置文件,即测量程序的各个部分需要多长时间。基于此,您可以优化您最热门、最值得优化的功能。某些网络浏览器(例如 Google Chrome)已内置分析工具。

剖析很棒而且很有趣:)

于 2013-10-26T08:35:28.990 回答
1

如果我正确理解您的问题,您正试图在 else/if 阶梯和 switch 语句之间做出决定。switch 语句将减少 cpu 密集度,并且是两者之间的最佳选择。如果您使用 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 回答