【发布时间】:2013-03-30 20:20:53
【问题描述】:
我的 iOS 应用程序通过 php 脚本访问数据库并发送回一些数据向服务器发出请求。 db 命中非常简单,只是根据唯一键获取一些数据。
它在 wifi 上运行良好(延迟不到一秒),但在 3g 上速度很慢,无法使用。谁能告诉我可能是什么原因,或者我可以在哪里探索更多?我想像 facebook 或 googlemaps 这样的应用程序比我正在做的数据密集得多,但它们的响应速度似乎要快得多。 我可能会向服务器发送不超过 20-30 个字符(加上 JSON 添加的任何开销),并返回大约 500-1000 个字符(加上 JSON 添加的任何开销)。
我正在同步发送内容,但我认为异步对我没有帮助...在我收到消息之前数据不会出现。
我的发送和接收代码是:
+ (id)queryDBJSON:(NSString*)script inputs:(id)post
{
NSError *error;
NSData *jsonPayload = [NSJSONSerialization dataWithJSONObject:post options:NSJSONWritingPrettyPrinted error:&error];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", script]];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody:jsonPayload];
NSHTTPURLResponse* urlResponse = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&urlResponse error:&error];
if ([urlResponse statusCode] != 200)
{
return nil;
}
NSString *strResult = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSData *jsonData = [strResult dataUsingEncoding:NSUTF8StringEncoding];
id aa = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
return aa;
}
感谢您的任何意见!
【问题讨论】:
-
永远不要在主线程上进行网络调用。时期。在后台进行网络连接。获得结果后,在主线程上更新 UI。
标签: ios json performance 3g