areaJson.pack 中国城市JSON数据(Noker压缩版)简要说明
这个是在
Shawphy 那里发现的好东西,包括调用程序和未压缩的JSON数据。由于看到了Shawphy的一段话(见下框),勾起了我压缩这个JS的想法(看了Shawphy很多好东西,在此表示感谢),于是乎2009-8-31的深夜做完了这件事情。
压缩前文件大小:93.3KB(GB2312) 122KB(UTF-8)
压缩后文件大小:28.9KB(GB2312) 37.8KB(UTF-8)
压缩后与前比率:约33% 约31%
压缩后文件下载地址:areaJson.pack.rar(包含GB2312和UTF-8两个版本,注意文件名)
相关连接:
中国城市/区域,三级联动选择演示(DEMO) json2select(JQ的插件代码出处)
json2select的全国城市数据(原始数据获得处)
Asfman(从搜狐白社会导出原始数据,感谢)
压缩方法及性能说明:方法就是Shawphy说的方法哈,只是我换的比20项更多而已,替换了52项(用光大小写字母),包括构成JSON数组的符号和文字,字频70以上的汉字和词频30以上的词都换掉了。
性能方面虽然有52项,但还是蛮快的,本机测试千次平均:IE7下18毫秒(0.018秒),FF3.5下26毫秒(0.026秒),所以使用此压缩版数据丝毫不用担心,正常的机器处理解码过程也就在0.03秒内,不会对用户的浏览器造成压力。
如发现压缩版存在问题,可向sxnoker@gmail.com反馈,谢谢。
这套数据有100K多一点,但可以想办法压缩
把其中重复字符串替换掉,把街道替换成j,市替换成s,区替换成q,都可以减少文件体积。要用的时候先用正则替换后,再eval执行字符串就能得到数据了,可以达到68K左右
另外,保存成gb2312的话也可以减小体积。目前我手头的是52K左右大小了。但可能导致乱码,慎用。
进一步,如果通过词频分析,找出重复最多的前20个,替换的话,相信可以把体积维持在30K以下了。但手头没工具,最近也很忙,所以大家自己发挥吧。
我粗略压缩后的东西我就不单独发布了。