http://blog.163.com/yuki_1154/blog/static/712027712012112613021534/ http://blog.csdn.net/sean_cd/article/details/8238473