Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何组织用于javascript操作的国家和地区数据库?_Javascript_Xml_Database_Json - Fatal编程技术网

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

如何组织用于javascript操作的国家和地区数据库?,javascript,xml,database,json,Javascript,Xml,Database,Json,我不是程序员,但我自己为我的网店做过所有的定制。我用禅宗车。我正试图让它对国际客户更加友好,很明显,zen cart只是粗略地说的“国际”。它以美国为中心,象征性地向加拿大、英国等其他“普通”国家点头 不管怎样,我正试图重新做注册表,这样地址对任何来访者来说都更具意义,无论他们来自哪个国家。所以他们选择国家和“国家”自动填充。。。这是内置的(只需手动将每个国家的所有“州”添加到数据库中),但问题是JS变得相当庞大。除此之外,我还想更改标签的显示方式。对于来自阿根廷的游客,“城市”应改为“自治市”

我不是程序员,但我自己为我的网店做过所有的定制。我用禅宗车。我正试图让它对国际客户更加友好,很明显,zen cart只是粗略地说的“国际”。它以美国为中心,象征性地向加拿大、英国等其他“普通”国家点头

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

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

所以我的问题是。。。这能有效吗?这会是“lite”吗?我们真的必须用所有这些数据来填充客户端浏览器吗?还是有更好的方法(并且在没有额外页面加载的情况下仍然保持动态)

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


谢谢。

如果您想用它改进用户界面,那么数据量并不是很大

您的服务器应该实现一个gzip方法来压缩发送到客户机之前的数据,重复的数据压缩得非常好

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

var countryData = [
  { name: "USA",
    provinceName: "City",
    suburbName: "Suburb"
  },
  { name: "Canada",
    provinceName: "Province",
    suburbName: "Suburb"
  }
]
您可以将所有这些内容保存在一个单独的文件中,以帮助保持javascript的条理化,并在主脚本运行之前使用
script
标记加载它


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

您可以在客户端加载所有国家和州,但这是一种糟糕的做法。您应该只加载所需的数据。用户选择一个国家,然后向服务器发出ajax请求以返回相应的状态。在很多情况下,我同意你的观点,但在这种情况下,我认为260个国家的数据并不多,特别是在压缩后。我预计ajax请求可能需要比第一次下载数据更长的时间。我认为在这个问题上,好的/坏的做法没有那么明确——我认为这取决于具体情况。虽然你的例子只涉及标签名称,但我想知道你的“没那么大”想法是否遗漏了州名称?就像你说的那样,但也有1到100个州(美国有50个州,加拿大有13个州,西班牙有船载…等等)。这会改变你的想法吗?还是没有那么多?我认为这还是可以的,但是测试是创建JSON数据,包括您需要的所有数据(或者同样表示它的好的虚拟数据),然后使用gzip压缩它。然后,您可以自己判断,对于您所需要的功能,gzip JSON数据文件的文件大小是否值得。我预计压缩后的最终文件将在20K范围内,这有点重,但我不会说在通常重量在150-200之间的现代网站上不可行,这是关于各州的一个好观点,这确实会显著改变数据量,谢谢。不管怎样,它只在注册表上起作用,所以它不像每页都停滞不前。出于好奇,请告诉我该文件有多大,如果您喜欢,请将其作为github要点或其他东西提供,以便将来其他人可以使用它。。。除非已经有一个了。。。在这种情况下,就这个问题在这里贴一个链接。,~)