问题描述
||
我想知道当http标头中没有content-length时,网页加载进度栏如何在FF中工作。我在google.com上进行了检查,它没有发送内容长度的标头,但是进度栏可以正常工作。它是真实的进度条还是假的?如果这是假的,那我该如何建立一个类似的。
我正在构建一个iPhone应用程序,需要在其中构建类似的加载进度栏。
更新1
@Robot Woods-我刚刚在Google上搜索了\“ hello \”,但确实在底部看到了进度栏..现在我在Windows 7和FF 3.6.13上
这是我得到的响应头-
而且我没有看到任何内容长度标题...
如果内容长度不存在,FF如何生成进度条。
解决方法
我不知道Firefox做什么,但如果是我,我将看以下内容:
初始页面通常加载很快。在它仍然存在时开始对其进行解析,并开始获取该页面需要的其他资源(css,js,图像等)。
使用进度条来描述支持文件将花费多长时间,并根据您之前下载的该类型其他文件的悲观平均值来估算页面。
许多程序在没有信息的情况下如何使用进度条来提供进度条,随着进度的临近,进度条会变慢。它永远不会到达尽头,但是只要数据继续输入,它就会继续移动。
,但是您要加载什么? FF只是这里进度条的一个示例吗?
如果要使用NSURLConnection连接到网络并显示其下载进度,则只需使用UIProgressView对象即可。请注意,我已经跳过了您的数据处理,只是编写了progress事件。
// NSURLConnection委托方法
-(void)连接:(NSURLConnection *)连接didReceiveResponse:(NSURLResponse *)响应{
// length是在外部声明的long long
长度= [响应ExpectedContentLength];
}
-(void)连接:(NSURLConnection *)连接didReceiveData:(NSData *)data {
NSNumber *收到= [NSNumber numberWithUnsignedInteger:[数据长度]];
NSNumber * total = [NSNumber numberWithLongLong:length];
浮动比率= [接收的floatValue] / [toplam floatValue];
[[YourUIProgressView progressBar] setProgress:ratio];
}
祝好运。