0

我不是程序员,但我自己为我的网上商店完成了所有的定制。我使用禅车。我试图让它对国际客户更加用户友好,很明显 zen-cart 只是粗略的“国际”。它非常以美国为中心,向加拿大、英国等其他“共同”国家致敬。

无论如何,我正在尝试重新制作注册表单,这样地址对于任何访问者来说都更有意义,无论他们的国家/地区如何。所以他们选择国家和“州”自动填充......这已经内置(只需将每个国家的所有“州”手动添加到数据库中)但问题是JS变得相当大。除此之外,我想更改标签的显示方式。IE。对于来自阿根廷的游客,“城市”应改为“市政”。一个明显的例子是加拿大的“省”等。但是JS变得更大了。

你最终会得到一系列庞大的 if 语句,涵盖大约 260 个国家,每个国家平均有大约 8 到 10 个“州”,然后每个国家都有自己的“街道”、“郊区”、“城市”、“州”和“邮政”标签。

所以我的问题是......这能有效吗?这可以“精简”吗?我们真的必须用所有这些数据填充客户端浏览器还是有更好的方法(并且在没有多余页面加载的情况下仍然是动态的)?

还是把所有东西都堆在那里就可以了?在我的本地服务器上,它加载相当快。我没有在网络服务器上尝试过,我真的没有办法在“慢”连接上进行测试,所以我只想从一开始就正确编码。

谢谢。

4

1 回答 1

1

如果您要使用它来改进用户界面,那么数据量并不大。

您的服务器应该实现一个 gzip 方法来压缩数据,然后再发送到客户端,并且重复数据压缩得非常好。

我希望您应该在 JSON 中使用类似这样的数据结构

var countryData = [
  { name: "USA",
    provinceName: "City",
    suburbName: "Suburb"
  },
  { name: "Canada",
    provinceName: "Province",
    suburbName: "Suburb"
  }
]

您可以将所有内容保存在一个单独的文件中以帮助保持您的 javascript 井井有条,并script在主脚本运行之前使用标签来加载它。

另外,为了测试性能,我会使用像 YSlow 这样的工具,它在 firefox 浏览器的 firebug 扩展中运行。它由 yahoo 制作,允许您查看页面所有组件的加载时间,无论是否缓存,并允许您检查哪些文件被压缩或未压缩。

于 2012-06-20T05:27:36.040 回答