angularjs $http手机端锁屏后长时间不操作,请求无响应问题

最近做一个老项目使用的cordova+angularjs进行手机端开发。

发现当手机自动锁屏5-7分钟之后再次打开手机操作,第一次请求无响应。由于开启了loading-bar所以导致加载条无法停止(没有响应导致)。

增加了Vconsole和httpInterceptor日志后发现 请求是peding状态,而且确实走了request之后没有走response。

查看后端+nginx发现无任何日志输出,说明请求并未到达后端。

百思不得其解。最后想起会不会是因为长连接导致的。因为nginx设置了keeplive_timeout=300。

故将其修改为60s发现此问题复现不了。猜测是因为$http对象缓存了长连接,等超时之后连接不上了一直阻塞等待响应。

正常应该使用fiddler手机抓包确认一下是否发起了请求才能证实这个原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章