Qt 在ios 11以上手机首次启动网络请求加载慢原因

如题,Qt 在ios 一直跑得好好的,自己ios 11 出来以后,突然有一天应用启动后,首页加载奇慢,刚开始不知道什么原因,因为有的手机正常,有的手机加载慢,刚开始发现旧手机跟之前一样,新手机反而慢了,突然有一天发现旧手机是因为ios 版本是 10.xx.xx,所有变慢的 iphone手机都是 ios 版本在11.0.0以上。但还是没找到什么原因!因为项目中网络请求缓存,研究了一下http协议 Etag 这个东东(还是没有找到Qt 中怎么在大量随意的请求中怎么使用),无意中发现变慢的原因,是因为之前看到 Qt 一份资料《Speeding up your Qt app with new QtNetwork features》,里面提到了提到 make pre-DNS lookup;pre-TCP handshake;pre-TCP-and-SSL handshake;所以我出用到了里面提到的三个预处理技术,经多次测试,发现是在预处 tcp 握手影响了首次网络请求,把预处理取消后就正常了, 至于为什么会这样的没有搞清楚,只能解决现在启动慢的问题

//pre-TCP handshake
networkAccessManager = ...
for (int a = 0; a < 6; ++a) {
    networkAccessManager->connectToHost(
QStringLiteral("api.twitter.com"), 80); }

//pre-TCP-and-SSL handshake
networkAccessManager = ...
for (int a = 0; a < 6; ++a) {
    networkAccessManager->connectToHostEncrypted(
QStringLiteral("api.twitter.com"), 443); }

 

你可能感兴趣的:(c++,iOS,Qt,Qt,ios,启动加载页面慢)