問題タブ [nsurlcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSURLCache はどのキャッシュ アルゴリズムを使用しますか?
Apple のNSURLCache
クラスには適切なドキュメントがありますが、使用するキャッシュ アルゴリズムについては言及されていません。LRU、LFU、またはまったく別のものですか?
私はiPad用に開発しており、を使用しNSURLCache
て写真をキャッシュするためのディスクキャッシング機能を利用したいと考えて[NSURLCache setDiskCapacity]
います(デフォルトは0のようです)。この値の上限は?
objective-c - iOS の NSURLConnection が 50KB を超えるオブジェクトをキャッシュしようとしない
Apple のドキュメントには別の方法が示されていますが、NSURLCache
iOS ではディスク (フラッシュ) キャッシュはまったく行われません。サブクラスNSURLCache
化して、ディスクを使用するようにフェッチおよびストア操作の動作を変更できますが (実際に行っているようSDURLCache
に)、キャッシュの使用方法と実装方法に関する以下の厳しい制限により、これは期待どおりに機能しません。 :
NSURLConnection
storeCachedResponse:forRequest:
約 50KB (正確には >= 52428 バイト) を超えるファイルは必要ありません。NSURLCache
これにより、キャッシュに到達することさえできないため、サブクラス化 (200KB の画像) は無意味になります。その結果、上のレベルでキャッシングを手動で追加する必要がありますNSURLConnection
。- NSURLCache のビルトインを
storeCachedResponse:forRequest:
手動で呼び出した場合でも、応答が約 180KB 未満の場合にのみメモリに格納されます。storeCachedResponse を手動で呼び出してこれをテストし、currentMemoryUsage
約 180KB を超えるデータ長の前後で変更がないことを確認しました。そのため、独自の LRU メモリ キャッシュも作成する必要があります。
他の誰かがこれらの問題に気づきましたか? または、私が見逃しているものがありますか?
参考までに、シミュレーターと iPad 2 で iOS 4.3 を実行しています。
ios - MPMoviePlayerController : プログレッシブ ビデオを 10 秒のプリロードで再生し、オフラインで使用するためにキャッシュします
URLCACHE を使用してプログレッシブ ムービーを完全にダウンロードし、それを再生できます。
ただし、部分的にダウンロードした後に映画の再生を開始し、引き続きキャッシュ フォルダーに完全にダウンロードしてオフラインで使用したいと考えています。
アイデア/例はありますか?
ios - 同じURLをロードした後、cachedResponseForRequestは呼び出されません
によって行われたすべてのURLリクエストをインターセプトするために、サブクラスNSURLCache
化して上書きしcachedResponseForRequest
、共有キャッシュを独自のキャッシュオブジェクトに変更しましたUIWebView
。最初は完全に機能し、URLがに読み込まれるとUIWebView
、すべて(css、jpgなど)がインターセプトされます。しかし、同じURL(index.htmlなど)を読み込もうとすると、cachedResponseForRequest
メソッドが呼び出されません。その後、別のURLで試してみると、完全に機能します。
リクエストのcachePolicyを可能なすべての値に変更しようとしましたが、何も役に立ちませんでした。
uiwebview - iOS 5でのNSURLCacheのディスク上のストレージ?
しばらくの間、キャッシュされたphp / javascriptコンテンツをUIWebviewに表示しようとしましたが、まだ成功していません。静的コンテンツでは問題なく動作しますが、JavaScriptを使用して動的コンテンツを読み込もうとすると失敗します。
私はいくつかの潜在的な解決策を試しました:(ASIHTTPRequest、AFCache ...)しかし、それらのどれも私にとってはうまくいかないようです。私はいつも何度も何度も壁にぶつかることになります、これを成し遂げる簡単な方法はないようです。
昨日、$(HOME_DIRECTORY)/ Library / Caches /(app_bundle_id)/(スキーマはこちら: https ://gist.github.com/1305158 )にあるCache.dbというファイルを見つけたときに、シミュレーターで少し遊んでいました。
彼らはiOS5でディスク上のキャッシュストレージを取り戻したと思いますが、それを使用する方法が見つかりません。試してみるたびに、使用するキャッシュポリシーに関係なく、必要最低限のhtmlが表示されます(JavaScriptファイルやそこから参照される画像は読み込まれません)。ただし、javascriptファイルと画像ファイルはデータベースファイルをクエリするときに表示されるため、適切にキャッシュされています。
この新機能を利用する方法を知っている人はいますか?キャッシュに保存されているjsファイルを参照する方法を知っている人はいますか?
ありがとう
ios - NSURLConnectionキャッシュをクリアする
NSURLConnectionキャッシュをクリアする方法はありますか?
これを使用していくつかの文字列をダウンロードしましたが、サーバーから変更しても同じ文字列を取得し続けます。
image - NSURLCache から画像を取得する方法はありますか?
UIWebView が通常の方法でリクエストをロードすると、画像を含めてキャッシュされる可能性が高くなります。カメラロールに保存する画像を選択してもらいたいです。
この時点で、ユーザーが UIWebView 内でタップした画像の URL を検出できます。私の無知な答えは、NSURLConnection を使用して画像をダウンロードすることですが、画像は既にダウンロードされており、おそらく既にキャッシュに保存されているため、それは間違っていると感じています。画像が既にキャッシュされているかどうかを確認し、画像を 2 回ダウンロードする代わりに取得する方法はありますか?
私は次のように NSCachedURLResponse を取得しようとしました:
しかし、「応答」は常にゼロです。それは、キャッシュされないことを意味しますか?
編集:
でリクエストを使用する場合:
有効な応答を返します。ただし、自分で作成したリクエストで同じ URL を使用すると、再び nil が返されて混乱します。
ios - UIWebView の使用時に POST が一貫して NSUrlCache を通過する問題
ここに示されている手順に従うことで ( http://www.icab.de/blog/2009/08/18/url-filtering-with-uiwebview-on-the-iphone/ )、UIWebView を使用して URL フィルタリングを行うことができ、 NSURLCache 派生オブジェクト。
私が抱えている問題は、特定のページで cachedResponseForRequest() 関数が POST 要求に対して呼び出されないことです。
すべての POST リクエストをキャッチするためにこのメソッドを機能させた経験がある人はいますか、または POST が時々しかキャッチされない理由はありますか?
ありがとう。
iphone - iPhone のサーバーから UITableView に画像を非同期で表示する
NSURL を使用して UITableView で画像を取得しようとするとUIImage image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://mysite.com/mobile/abc.jpg]]];
、画像が読み込まれるまでアプリケーションがフリーズします。また、テーブルをスクロールすると、サーバーから画像が再び取得され、しばらくスクロールが動かなくなります。
これは、サーバーから同期的に画像をダウンロードするために発生していることを知っています。
サーバーから画像を非同期にダウンロードしてローカルまたはキャッシュに保存できるようにする解決策はありますか
ありがとう
ios4 - デバイスがオフラインのときに NSURLConnection キャッシュを使用する
NSOperation サブクラスでは、次のコードを使用してサーバーから xml ファイルをダウンロードし、後で解析しています。
2 回目に同じ要求を行うと、サーバーは HTTP 304 を返し、キャッシュされた応答データは に保存されreceivedData
ます。ここまでは順調ですね。
私の質問:デバイスがオフラインのときに、これと同じキャッシュされた応答を取得することは可能ですか?