关于全国省,市,区三级联动

来源:百度文库 编辑:神马文学网 时间:2024/04/30 00:00:03
关于全国省,市,区三级联动

我们见到的全国省,市,区三级联动不外乎有两种模式
1 把所有数据存到js文件中
2 使用数据库
我们来说说这两种模式的优缺点吧
第一种使用最多的,
优点:不访问数据库速度比较快
缺点:每次都要下载几百K的数据文件,只为了得到几十个B的数据
第二种
优点:数据传输量小,按需传输
缺点:访问数据库
有没有兼有两种优点的解决方案呢?答案是有的。。
最近我就做了一个
我给大家介绍一下我是怎么实现的
使用ajax调用文本文件,把数据分成若干个文本文件,文件名使用编号,即身份证上那样的编号
为每个省建一个文件夹名为省编号,例如北京编号为11,天津编号为12等
在每个省级文件夹下建立一个和省级编号同名的文本文件文件的内容为:
  城市编号:城市名称
  城市编号:城市名称
               。
               。
               。
然后再在这个文件夹下建立以城市编号为文件名的文本文件内容如下:
  区县编号:区县名称
  区县编号:区县名称
               。
               。
               。
还要建立以个省列表文件(最外层)内容如下:
11:北京市
12:天津市
13:河北省
14:山西省
15:内蒙古
21:辽宁省
22:吉林省
23:黑龙江省
31:上海市
32:江苏省
33:浙江省
34:安徽省
35:福建省
36:江西省
37:山东省
41:河南省
42:湖北省
43:湖南省
44:广东省
45:广 西
46:海南省
50:重庆市
51:四川省
52:贵州省
53:云南省
54:西 藏
61:陕西省
62:甘肃省
63:青海省
64:宁 夏
65:新 疆
71:台 湾
81:香 港
82:澳 门
数字为option的value值
文件为option的text值
首先载入省级列表文件,当用户选择省份时
触发onchange事件根据省份编码获取这个省份的城市列表文件并动态载入select中
当用户选择城市的时候触发onchange事件根据城市编码获取这个城市的区县列表并动态载入
整个过程只需载入三个文件,而每个文件的大小也就二三百B,也就是说只需1k左右的数据传输
而把所有数据放到以个文件中最少要100多K
算一算如果是一个门户网站,就算一天访问这样带选择省,市,区的页面有1000W的话
每次下载所有数据:10000000X100K=10GX365=3650G(一年)
按需下载:10000000X1K=0.1GX365=36.5G(一年)
这只是一个网站的估计 如果说全国所有网站都采用这种方法一年省下来的数据量是相当可观的
可能有朋友要问了:这么多文件,难道要一个一个建立,一个一个输入吗,我开始的时候就准备这样做
但后来想到了一个好的办法,我到国家统计局找到了行政规划的网页,保存了下来
并用asp写了个程序生成文件,一次就可以把所有目录和文件建好,而且数据自动都保存进去了
还是最新的。。(解决了大问题)