2011-06-24 10 views
1

マニフェストファイルを使用することを学習していて、この質問がありました。いくつかのWebサイトが、例えば3MBのファイルをキャッシュするマニフェストファイルを作成した場合はどうでしょうか?私が3Gで走っているとき、私のiPhoneには3MBがたくさんあります。だから、いくつかの悪質なウェブサイトは、そのようなマニフェストファイルを作成し、私のすべてのデータの手当を使い切ることができますか?マニフェストファイルのダウンロードサイズ制限

もう1つの質問は、責任ある開発者として、ユーザーが3Gを使用しているかどうかを検出するかどうかであり、そうでないと、前者の場合、より小さなマニフェストファイルを提供できますか? AndoridのWebkitに反対するよう

+0

これを2つの別々の質問に分割することを検討する必要があります。 –

+0

"いくつかの悪質なウェブサイト"には大きな画像が含まれているか、大きなXMLHttpRequestsや...何かを作成する可能性があることを指摘しておく価値があります。現在、「スピナー」を介して多くのコンテンツを読み込んでいます。 。責任感と3Gの検出に関しては、あなたの唯一の方法は、マニフェストイベント(特に進行イベントリスナー)を使用し、接続速度を推測するタイミングに注意を払うことだと思います。しかし、ページをリロードするマニフェストのダウンロードをキャンセルする方法はないので、マニフェストを小さく保つだけです。 – Rowan

答えて

4

ご質問がタグ付けされています「iPhone」なので、iOS固有の答えを出すつもりです。

マニフェストにリンクされているファイルを保持するオフラインストレージは、5MBに制限されているようです。 Appleのドキュメントにはこの制限が言及されていないので、これに関する証拠はすべて状況に関係します。しかし、アップルのエンジニアの中には、limitがあると認めているものもあります。モバイルサファリの最新バージョンは、場合によっては、ユーザーにexpandのストレージを許可することを提案していますが、開発者としては強制的に実行することはできません。

5MBはそれほど多くありません。多くのユーザーは何かが起こっていることに気づくでしょうし、そうしたくない場合はタブを閉じるだけです。私はすべての国が同じ制限を持っているわけではないことを理解していますが、米国のユーザーのほとんどは2 GB /月に制限されています。このレートでは、無防備なユーザーはマニフェストを誤って再ダウンロードしなければならず、そのファイルを100回リストして帯域幅割り当てのわずか25%を使い切る必要があります。それはかなり低い限界であり、誰かのデータ割り当てを悪意を持って使い切る可能性はかなり遠いです。

ユーザーが3GまたはWiFiであるかどうかを確認する方法については、Apple Developer CenterのReachabilityの例をご覧ください。それはまさにそのことです。私が知っている(ネイティブのアプリとは対照的に)ウェブアプリでそれを行う方法はありません。

-1

このマニフェストファイルをどのように取得しているのかは分かりませんが、NSURLConnectionを使用している場合は、ダウンロードしたデータ量の合計を維持するだけですconnection:didReceiveData :)を作成し、3MBを超えると接続をキャンセルします。各接続の番号をゼロにすることを忘れないでください。

デバイスを見つけるためとして、(すべての「Nのソースコード)詳細は、彼らがあるべきよりもトリッキーに見えるが、私はそれを行う方法のかなり簡単な例を見つけた:Determine If iPod is First or Second Generation