問題タブ [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 - URLキャッシュ - iPhone SDK
NSURLCache を使用して単純なファイルをダウンロードする際に助けが必要です。アプリの Documents フォルダーに保存する必要があります。Apple が提示した URLCache の例を見たことがありますが、表示されていたのは画像だったので、役に立ちませんでした。さらに、修正日に複雑なコードがいくつかありました。アプリケーションが開くと、ダウンロードプロセスが開始されます。誰かがファイルのダウンロードプロセスだけを案内してくれますか?
ありがとう
ケビン
iphone - SDURLCache (NSURLCache のサブクラス) 使用時のメモリ リーク
iPhone アプリでディスク キャッシュを有効にする代わりに、 Olivier Poitrey の SDURLCache (github リンク) を使用しています。NSURLCache
非常にうまく機能しますがNSHTTPURLResponseInternal
、ディスクにキャッシュされたオブジェクトが返されたときに奇妙なことにリークしています (オブジェクトがメモリから返された場合やオブジェクトが見つからなかった場合はリークしません)。次のコード スニペットは、SDURLCache がディスクからデータを読み取る方法を示しています。
各NSHTTPURLResponseInternal
リークのスタック トレースには、SDURLCache
コードへの 2 つの参照が含まれています。
最初のポイントは行[accesses setObject:[NSDate date] forKey:cacheKey];
です。2番目の最新のポイントは次のとおりです。
以前にこの問題に遭遇した人はいますか? 解決策について何か考えはありますか?さらにコード サンプルを投稿する必要がある場合はお知らせください。
乾杯。
更新:コードの作者であるOlivier Poitrey からのツイート
NSURLCache の継承を削除し、メモリ キャッシュを処理することを計画しています。これにより、リークが修正される可能性があります。
iphone - UIWebView と NSUrlCache
cachedResponseForRequest および storeCachedResponse 呼び出しを単にログに記録する NSURLCache があります。
UIWebView はすべてのリクエストに対して cachedResponseForRequest を呼び出すようですが、storeCachedResponse は最上位ページに対してのみ呼び出されます。つまり、css/js/etc に対しては呼び出されません。html で指定します。
これが発生している(発生していない)理由はありますか?
私はこれを 3.2 iPad シミュレーターとデバイスで観察しています。
image - NSURLCacheのcachedResponseForRequestをオーバーライドして、Three20でUIWebViewアセットをキャッシュします
Webビューに入るWebソースの画像(つまり、バンドルソースではない)をキャッシュする必要があります。通常は、画像をリクエストしてbase-64に変換し、HTMLに貼り付けるだけですが、100枚の画像が並んでいる場合はそれができません。
そこで、少し調べて、サブクラス化NSURLCache
してオーバーライドすることで画像リクエストを取得する方法を見つけましたcachedResponseForRequest
。私のコードは以下の通りです。
リクエストは問題なく実行できます。データを取得して印刷したり、データからUIImageを作成してサイズを取得したりして、definitely
そこにあることを確認したりします。しかし、cachedResponseForRequest
自分自身を返して見てみると、で、UIWebView
欠落している画像が表示されます。私はこれについて1日苦しんでいて、それを理解することができません。私は例を次々と見てきましたが、葉巻はありません。
誰かが私がこれを解決するのを手伝ってもらえますか?それは私を狂わせています。
これが私のNSURLCache
サブクラスの.mファイルの内容です。GimageData
受信した現在の画像データを保存するためのインスタンス変数です。
ご存知のとおり、http___をhttp://に検索/置換する理由は、http://リンクがこの方法で取得されないように見えるため、リンクを次のようなものに見せました。バンドルを取得したら、URLを元に戻して取得します。
iphone - iPhone: 取得した Web ページのディスク キャッシュからテキストを抽出する
私の iPhone アプリには、UIWebView を含む情報ページがあり、それを私のウェブサイトの情報ページに示しました。
ただし、ユーザーがアプリをロードするたびに、データが取得されるまで何年もの間、空白の画面が表示されます。これは良くない。
バックグラウンドで新しいバージョンを取得しようとしている間に、最後に読み込まれたページを表示する方がはるかに優れています。しかし、これをきれいに行う方法がわかりません。誰かが私を始めることができますか?
2 番目の質問: Web ページには 3 つのペインが含まれているため、iPhone の場合、この Web ページを UIWebView に表示することは実用的ではありません。全体が収まりません。私は本当にページからテキストを抽出したい。これを行うクリーンな方法はありますか?本体のみダウンロードしたいという指定はできますか?
ページ全体が単一の文字列として返されると推測しているので、テキストの周りに自家製のタグをいくつか付ければ、テキストを手動で抽出するのが簡単になるでしょう...
objective-c - NSURLCache は HTML5 ビデオ タグをバイパスします
UIWebView で動作する NSURLCache の子孫があります。私は WebView に Web ページをロードし、それが行うすべての HTTP 要求をインターセプトできます (そしてドキュメント ディレクトリにローカルにキャッシュします)。これは、インライン画像、javascript 参照、css 参照、および CSS 内のすべての URL 呼び出しに対して機能します。ただし、これはHTML5ビデオタグからの呼び出しをピックアップしません....
ビデオを除いて、ページに必要なすべてのファイルが残っているため、(キャッシュ後に) webview をオフラインで表示しようとすると問題が発生します。
NSURLCache が VIDEO タグで機能しない理由、および/またはこれを機能させる方法を知っている人はいますか!??!?!
iphone - iOS インターセプト HTTP イメージ リクエスト & ローカル イメージで置換
Web サイトの 1 つを UIWebView にロードするアプリケーションを作成しています。ロード時間を短縮するために、NSDictionary をチェックしてイメージがローカルに存在するかどうかを確認する NSURLCache のサブクラスを作成しました。存在する場合は、オンライン バージョンを要求するのではなくローカル イメージを使用します。一部の画像は同じ名前ですが、異なるフォルダーにあります。ここに私のNSDictionaryがあります:
5月のアプリでは、オンラインと同じフォルダー構造に画像があるので、「https://www.xxx.com/content/star-bar/1-Star/1-Stars.png」のリクエストをどのように伝えるのですか? 「https://www.xxx.com/content/star-bar/2-Star/1-Stars.png」用の画像ではなく、正しい画像を使用するには?
それが明確であることを願っています!
ios4 - NSURLCache は iOS 4 でどのように機能しますか?
NSURLCacheのドキュメントを読んでも、多くの重要なメモが見つかりません。Web の多くのトピックで、NSURLCacheを使用するNSURLConnectionにメモリ リークがあると不満が寄せられていることがわかりました。iOS 4.3 用のアプリケーションを作成しようとしたときに、MSURLCacheに奇妙な動作があることがわかりました。
application:didFinishLaunchingWithOptions:メモリ容量 10MBのNSURLCacheのインスタンスを設定し、 NSURLRequestUseProtocolCachePolicyでNSURLRequestを初期化しましたが、 NSURLConnectionデリゲートでconnection:willCacheResponse:メッセージを受信できません。アプリケーションのさまざまなポイントでメモリ容量を確認したところ、0MB でした。なんで?NSURLCacheメモリ容量を 0 に設定することで、Apple がいくつかのメモリ リークを修正する可能性がありますか? カスタムNSURLCacheを作成し、 setMemoryCapacity:メソッドを次のようにオーバーライドしました。
その後、デバッグを開始しました。ユーザーがURLを入力したアプリに入力テキストがあります。新しいsetMemoryCapacity:メソッドが 2 回呼び出されました: 私のアプリ デリゲートでは、容量を 10MB に設定したときと (非常に興味深い) ユーザーがフォーカスをテキスト入力に設定したとき ( memoryCapacityのパラメーターが 0 で、ログに "zero here" という文字列を受け取りました) )。その後、connection:willCacheResponse:メッセージをNSURLConnectionデリゲートに受け取りました。とても奇妙でした。理由がわかりません。これについては、マニュアルで見つけることができません。何か考えはありますか?
ios - ローカルファイルのWebビューキャッシュをクリアする
私はいくつかの同様の投稿を見つけましたが、それらは私がしていることに何の影響も与えていないようです。UIWebView
バンドル内のローカルコンテンツを表示するために使用しているものがあります。具体的には、docxファイルを表示しています。ユーザーがこのドキュメントを見ることはめったにありません。私のアプリはメモリが不足しているので、私がやりたいのはUIWebView
、ドキュメントをキャッシュできないようにすることです。もう1つの実行可能なオプションは、ユーザーがビューを離れたときにキャッシュをクリアすることです。ユーザーがビューに入るたびに最初からロードする必要があるので、まったく問題ありません。
私は次のようにドキュメントをロードします:
私が試したキャッシュを停止する試みでは、次のようになります。
と:
と:
また、Webビューのキャッシュポリシーを設定しようとしましたが、Webビューをリリースしたときにまだメモリが残っていたため、メモリを消費しているように見えました。再入力して再割り当てしたとき、同じメモリを使用していませんでした。
しかし、これは正しい方向ではないと思います。これらはすべて、Webページのキャッシュを停止する方法としてタグ付けされていますが、ローカルファイルには効果がないようです。これで他にどこに行けばいいのかよくわかりません。誰かがキャッシュを強制的にクリアする方法、またはそもそもキャッシュを防ぐ方法を知っているなら、私はいくつかの助けを大いに感謝します。
iphone - iOS でキャッシング モデル (NSURLCache & UIWebView 用) を設定するには?
これは iOS フレームワークのバグではないかと思います。NSURLCache setMemoryCapacity: メソッドが 0 で呼び出され、キャッシュを停止します。
UIWebView を提示するときにこれが起こるのを見ています。私は SDURLCache を使用して setMemoryCapacity: をオーバーライドし、渡された memoryCapacity がゼロの場合はそこにブレークポイントを配置して、誰がクリアしたかを確認できるようにしました。
ある種の好みの変更が投稿されていますか?Mac OS X SDKのみであるWebPreferences.hにcacheModelのものがあります:-(
したがって、理想的には、キャッシング ポリシーを設定する方法があればよいのですが、その方法がわかりません。キャッシュが発生しないようなキャッシュ モデルを選択する理由がわかりません。
iOS アプリのキャッシュ モデルを WebCacheModelPrimaryWebBrowser のようなものに設定する方法を知っている人はいますか?
これはNSURLCache Memory Size is zeroに似ていますが、詳細を提供することで答えが得られることを願っています...