handle error; 提升性能; show loading