很多專案都需要省市區的資料表,有些甚至要到縣、鎮、街道、社群之類的更細的資料(比如 O2O 服務)。因此自己弄了一份省市地街道社群的5級聯動,放在表裡。
一般省級是直接載入的,改動省級,向伺服器查詢市級,此時查一次資料庫,選中市,查一次資料庫確定區。
後來查得煩了,乾脆把查到的資料做個快取,直接存成 json
檔案拉倒。 nginx
直接返回檔案,前端直接載入。這下不經過 PHP
和 Mysql
,快了很多。而且可以做 CDN
。這種方式是典型的空間換時間,現在硬碟已經很便宜了。
於是在 github
上開了個專案。
想著還要個 nginx
來起服務,算了,乾脆自己用 Golang
擼一個。
說幹就幹
package main
import (
"net/http"
"github.com/qufo/IniReader"
)
func main() {
config := IniReader.NewIniReader("./config.ini")
http.Handle("/", http.FileServer(http.Dir(config.Get("directory"))))
http.ListenAndServe(":"+config.Get("port"), nil)
}
寫完了。
即然都寫了,加個 readme
吧。
然後放 github
上了。
裡面的 ID (code) 為短格式,比如省級只有2位,市級只有4位,需要更長的話,自己在後面補0即可。
有需要就去下吧。
地址在 https://github.com/qufo/cities