http://davidzai.blog.163.com/blog/static/1871262120101823540952/ http://blog.csdn.net/tmeteorj/article/details/17509089