問題タブ [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.

0 投票する
1 に答える
2436 参照

nsurlconnection - NSURLResponseがキャッシュからのものかどうかを知る方法は?

特定のフォルダーにNSURLCacheを設定し(../../アプリケーションサポート/オフラインで、OSによってランダムに削除されないようにします)、NSURLRequestReturnCacheDataElseLoadポリシーを使用してNSURLRequestを送信します。

NSURLConnectionDelegateに準拠するクラスによって処理される応答が、キャッシュまたはネットからのものであることをどのように判断できますか?

0 投票する
2 に答える
2663 参照

ios - iOS 6.1 で NSURLCache がクラッシュする

iOS 6.1 を使用すると、起動直後にいくつかの HTTP リクエストを作成しようとすると、定期的にアプリがクラッシュしますが、6.1 未満の OS では問題なく動作します。

Queue : から呼び出されEXC_BAD_ACCESSた関数でクラッシュが発生してい ます。初回を除いて、アプリが起動されるたびに。strlencom.apple.CFURLCACHE_work_queue

NSURLCache がクラッシュする

アプリの起動直後に NSURLCache をクリアすることで問題を解決できました。

他の誰かがこれらのクラッシュを経験していますか? これらのクラッシュの原因となっているアプリケーション コードに問題がある可能性はありますか? それとも、これはアップルに提出されたバグですか?

0 投票する
1 に答える
911 参照

ios - Webサービスから複数の画像をより速くロードする

JSONWebサービスからアプリに複数の画像をロードしたい。これらの画像は、私のアプリの「ストア」のサムネイルとして機能します。そのため、ユーザーがボタンをクリックして「ストア」に移動すると、リクエストが送信されます。そして、このリクエストは、ユーザーがボタンをクリックするたびに繰り返されます。

ここでは問題はありませんが、JSONのデータが大量に増えると問題が発生します。以前は、5つの画像のみを読み込んでいました。現在、少なくとも18枚の画像を読み込んでいます。画像が100倍以上になると、これらは実際の問題を引き起こす可能性があります。

画像のキャッシュに使用することを検討してNSURLCacheいますが、画像に更新があるかどうかをどのように知ることができますか?新しい画像が追加された、または現在の画像が使用されなくなったとしましょう。誰かが私にこれにアプローチするための最良の方法について何かアイデアを与えることができますか?

0 投票する
1 に答える
4275 参照

ios - NSCachedURLResponseはオブジェクトを返しますが、UIWebViewはコンテンツを解釈しません

UIWebViewにリクエストを送信しています。ロードされたWebページにAJAX呼び出しがあります。ユーザーがログインしているかどうかを判断するには、AJAXトラフィックを分析する必要があります。これを行うために、AppDelegateにNSURLCacheをインストールしました。

このMYURLCacheクラスは、Webビューを通過するトラフィックを正しく受信します。AJAX呼び出しのみを終了できます。次に、AJAX呼び出しの独自の要求を生成します。これは、Webサーバーから完全に細かい応答を返します。したがって、ここで行う最後のステップは、NSCachedURLResponse戻りオブジェクトを作成することです。私もこれを管理しましたが、オブジェクトを返すときにWebビューは何もしません。nilだけを返すと、WebViewはすべてを正常にロードします(nilはNSURLCacheのメッセージであり、何もキャッシュされないため、WebViewはそれ自体でロードを開始する必要があります)。

0 投票する
1 に答える
4646 参照

ios - UIWebView が無期限にメモリを割り当てないようにする (NSURLCache は明らかに機能していません)

UIWebView キャッシュがどのように機能するかを理解しようとしています。私の目標は、UIWebViewによって割り当てられたメモリを(少なくとも、可能な限り)管理できるようにすることであるため、メモリが無期限に増加し、これが原因でアプリが強制終了されるのを回避します。

他のスタックオーバーフローの質問を読んで web検索した後、 NSURLCache sharedURLCacheを試すことにしましたが、それが実際にどのように機能するのかわかりません。

私のテストシナリオは次のとおりです。

内部に UIWebView を持つ単一のビューがあるiOS 5用のテスト アプリを実装しました。この UiWebview は、次のようにローカルのindex.htmlファイルをロードします。

このindex.htmlファイルには、Flickr から JSON をダウンロードし、パブリック フィードにアップロードされた最後の画像を含む JS スクリプトがあります。各画像はリストに追加されます。フィードから 1000 枚の画像がダウンロードされるまで、このプロセス全体が毎秒繰り返されます。コードを参照してください。

最後に、AppDelegate で、この投稿に書かれているように sharedURLCache を設定しました。

しかし、それが起こるはずだったにもかかわらず、計測器を開いて割り当てをチェックするアプリを実行すると、画像をダウンロードしている間 (最大 20MB) メモリが増え続けます。この sharedURLCache を使用して、ダウンロードした画像をキャッシュします。

画像1000枚到達後の機器の進化

誰かが私が間違っていることを知っていますか? 私は何か誤解していますか?ページの読み込みが間違っていますか? UIWebView は、JS に読み込まれた画像に別のキャッシュを使用しますか?

あなたの考えを教えてください。この sharedURLCache がどのように機能するか、UIWebView がそれを使用して URLRequest や画像などをキャッシュする方法を理解する必要があります。コントロールなしでメモリを割り当てることができる UIWebView を使用するアプリは必要ありません。

0 投票する
1 に答える
497 参照

ios - IOS は WebView のロードをインターセプトし、Web ページのリソースをディスクに保存します

Web ビューの読み込みに使用するためにダウンロードされている個々のリソースを追跡できることを読みました。ここを参照してください。私がやりたいことは、各リソースを傍受してファイルに保存することです。次に、ユーザーが Web ページを保存したい場合は、保存されたリソースと html を取得し、永続的な場所に保存します。しかし、私は初心者で、これを設定する方法がわかりません。誰か助けてくれませんか?

0 投票する
0 に答える
891 参照

ios - iOS NSURLCache / NSURLConnection 304 + max-age

Just out of curiosity does NSURLCache just completely ignore the max-age cache control header on 304 responses? I have a system setup using etags and max-age, that in theory should only send a request to the web service every 10 seconds based on the max-age setting in the header. Now this works when iOS gets the 200 response on initial load, but not when it receives the 304 response, it just continues to make the request to the server despite the max-age value. Based on what I've read in the past, what I'm trying to do is COMPLETELY valid http to ease server resources.

Sometimes I dislike the magic in the background.

0 投票する
1 に答える
541 参照

ios - NSURLResponseは、要求した範囲を無視してContent-Rangeを返します

ファイルをダウンロードするときに、ダウンロードを再開できるようにしたいと思います。例えば:

これにより、次のようなヘッダーを持つgetリクエストが生成されます。

範囲:bytes = 1000-

最初の206の応答は、次のようなヘッダーと値(からダンプされたallHeaderFields)を持つ、開始を要求したチャンクを提供することを期待します。

"Content-Range"="バイト1000-340197/340198";

しかし、時々それは先にジャンプして、代わりに次のようなものを返します:

"Content-Range"="バイト32000-340197/340198";

1000〜32000のバイトが必要で、それが私に与えられなかったので、これは本当に悪いことです。

サーバーにカールすると、要求したセクションが返されるため、サーバーエラーが発生しないことはわかっています。また、wiresharkを使用すると、サーバーにパケットが送信されません。したがって、これはiOS側の問題であり、おそらくNSURLCache

0 投票する
2 に答える
5793 参照

ios - NSURLCache を使用して、オフライン時にキャッシュされた API 応答を返す方法 (iOS アプリ)

私が研究しているがあまり進歩していないいくつかのことについて、誰かが光を当ててくれることを願っています。

NSURLCache を利用して、iOS アプリ内で行った API 呼び出しに対してキャッシュされた応答を返したいと思います。デバイスがオンラインの場合、キャッシュされた応答が最新のものであればそれを返し、それ以外の場合はリモートから取得したいと考えています。デバイスがオフラインの場合、年齢に関係なく、キャッシュされた応答 (存在する場合) をすぐに返したいと思います。

を使用してAFNetworkingいます。私が行っている API 呼び出しは、私が制御するサーバーに対するものです。プロトコルは HTTPS です。現在、Cache-Control応答ヘッダーは"max-age=0, public". 現在、キャッシュ関連のリクエスト ヘッダーを設定していません (すべきでしょうか?)。要求のキャッシュ ポリシーをNSURLRequestReturnCacheDataDontLoadオフライン時に設定NSURLRequestUseProtocolCachePolicyし、オンライン時にはデフォルトを使用します。Cache.dbまた、ディスク上のデフォルトでリクエストとそのレスポンスを確認できます。ただし、オフラインの場合、すべてのリクエストが失敗します(キャッシュされたように見えるにもかかわらず、キャッシュされた応答は使用されません/返されます)。

http://nshipster.com/nsurlcache/sharedURLCacheに従って、 aを初期化し、 AFNetworkingブロックを次のようにdidFinishLaunchingWithOptions設定します。setCacheResponse

このトピックに関するこれらの投稿や他の投稿を読みました。

http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk-cache-as-of-ios5/ http://blackpixel.com/blog/2012/05/caching-and-nsurlconnection.html

標準を使用する前にこの機能を成功裏に達成した人がいるかどうか疑問に思っていますNSURLCache(成功例にも興味がSDURLCacheありますが、Peter S. は、iOS5 の時点でディスク キャッシングがサポートされているためSDURLCache、もはや必要ではないと述べています。デフォルトの組み込みキャッシュ)。

前もって感謝します!