如何组织国家和地区的数据库进行javascript操作?

时间:2012-06-20 05:16:49

标签: javascript xml database json

我不是程序员,但我自己完成了网上商店的所有自定义工作。我用zen-cart。我正在努力使其对国际客户更加友好,并且很明显,zen-cart只是粗略的“国际化”。它以美国为中心,向加拿大,英国等其他“共同”国家点头表示。

无论如何,我正在尝试重新进行注册表,这样对于任何访问者而言,无论他们的国家是什么,地址都会更加明智。因此,他们选择了国家和“州”自动填充...已经内置(只需将每个国家的所有“状态”手动添加到数据库)但问题是JS变得相当庞大。除此之外,我想改变标签的显示方式。即。对于来自阿根廷的游客,“城市”应该是“自治市”。对于加拿大来说,显而易见的是“省”等等。但是JS只会变得更加庞大。

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

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

或者将它全部堆放在那里可以吗?在我的本地服务器上,它加载速度相当快。我没有在网络服务器上尝试它,我真的没有办法测试“慢”连接,所以我只想从头开始正确编码。

感谢。

1 个答案:

答案 0 :(得分:1)

如果要改进用户界面,那么这些数据量并不大。

您的服务器应该在发送到客户端之前实现gzip方法压缩数据,重复数据压缩效果非常好。

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

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

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

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