問題タブ [invalidation]

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 に答える
1149 参照

android - Android リスト項目 (Drawable) がまだ表示されているかどうかを確認する

LinearLayout を使用して ImageView と TextView のリストを取得したとします。今私は単純な ArrayAdapter 拡張機能を使用しており、Strig[][] をダブル文字列の配列であるアイテムとして取得します (各エントリには String[2] が含まれ、最初の文字列は画像への uri で、2 番目の文字列はテキストです。もちろん、 getView をオーバーライドして画像とテキストを表示し、ビューをリサイクルします:-)。ただし、リソースからでも画像の読み込みが遅い可能性があるため、非同期タスクで実行しています。つまり、デフォルトの画像が読み込まれており、次を使用します: ImageView と Uri を賭ける startLoading (私のメソッドです)画像の準備ができて、画像ビューに配置されます。

ただし、画像がまだロードされておらず、プロセスの途中にある場合はリストであるため、ロードを停止する価値があります。これは、画像をロードしている行が表示されなくなった場合です。

ビューがリサイクルされるため、ImageView が表示されている可能性があるため表示されているかどうかを確認できませんが、別の Drawable を使用しています...ある時点で、自分の行が無効になって表示されていないことを知る方法はありますか? 私の行がもはや有効ではないことを発見するために、フラグやタグパターンなどを使い始める必要がある簡単な方法やシェルはありますか?

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

delphi - Delphi 6 - Graphics32 ライブラリを使用しているときにオーナー ウィンドウの再描画が必要な場合にのみビットマップが更新される

ネイティブの Delphi コードを使用して TPaintBox Canvas で 3D モーションを作成するアプリケーションがあります。古いコードでは、Timer イベントで 3D イメージを一時的な TBitmap にレンダリングしました。TPaintBox の OnPaint() イベントでは、一時的な TBitmap を TPaintBox の Canvas に BitBlt() します。このアプローチはうまくいきましたが、動きがぎくしゃくしていました。

モーションの滑らかさに満足できなかったので、代わりに非常に大きなワークスペース ビットマップに「レンダリング」してから、それを TPaintBox Canvas にダウンサンプリングすることにしました。リサンプリングを行うために、ここで読んだ Graphics32 ライブラリを使用しました。

Delphiで画像をうまくスケーリングしますか?

大きな TBitmap32 (幅 1100 x 高さ 1100) にレンダリングするようにコードを変更し、それをダウンサンプリングするときに、TLanczosKernel カーネルで Graphics TKernelResampler オブジェクトを使用して、別の TBitmap32 にダウンサンプリングします。 TPaintBox Canvas を開き、TPaintBox の Refresh メソッドを呼び出します。TPaintBox OnPaint イベントで、ダウンサンプリングされた TBitmap32 を TPaintBox Canvas に BitBlt() します。

これは機能しますが、問題は、TPaintBox を所有するフォームが再描画を必要とする場合にのみ再描画が表示されることです。これは、レンダリングが完了した直後に TPaintBox で Refresh メソッドを呼び出すという顔にもかかわらず、古いコードでは発生しなかった問題です。私が言ったように、それに。有効性テストとして、事前レンダリングに使用する大きな高解像度 TBitmap32 オブジェクトと小さな TBitmap32 オブジェクトの両方で SaveToFile() を呼び出しました。ビットマップは、Timer イベント間でフレームのコンテンツがまったく変更されていないことを実際に示していたため、少なくとも TPaintBox コンポーネントでは、奇妙な再描画関連の問題ではありません。

フォームを移動するか、フォームのクライアント領域の一部を別のフォームでオーバーレイしてフォームのキャンバスを無効にすると、TBitmap32 オブジェクトのコンテンツが更新され、チェックとしてディスクに保存したビットマップ イメージも更新されます。

大規模な高解像度ワークスペースにレンダリングした新しいコンテンツが更新されるように、Graphics32 TBitmap オブジェクト自体を無効にする必要があるかのようです。ただし、TBitmap32 にはそのような無効化/更新呼び出しはありません。

Graphics32 ライブラリの経験があり、フォームの再描画が必要な場合やクライアント領域が無効になっている場合にのみ画像が変更される理由を教えていただければ幸いです。

0 投票する
3 に答える
24627 参照

java - JSPセッションを適切に無効にする方法は?

ここに問題があります。ユーザーが私のウェブサイトからログアウトしても、戻るボタンを押してサイトを使い続けることができます。ユーザーがログインしているかどうかを追跡するために、セッション属性「isActive」を作成しました。この属性は、ユーザーのログイン時に true に設定され、ログアウト時にセッションが無効になる直前に (冗長的に) 削除されます。また、すべてのページで、属性が存在するかどうかを確認します。

また、head タグでページをキャッシュしないように指定します。

それにもかかわらず、ユーザーはブラウザーにアクセスして、ログオフしたことがないかのようにサイトを使い続けることができます。

これを修正する方法について何か考えはありますか?

コードは次のとおりです。

ログインサーブレット:

ログインした JSP を確認します。

ログアウトサーブレット:

ヘッドタグの内側:

ありがとう

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

android - AndroidのGoogleマップの無効化(左、上、右、下)に渡すパラメータは何ですか?

この関数に渡すパラメータは何ですか?

無効化(左、上、右、下)

AndroidのGoogleマップで使用するには?

ありがとう

- アサン

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

android - Android の非同期タスク スレッドでの無効化の呼び出しに問題があります。

ayntask スレッドから invalidate() を呼び出そうとしています。このエラーが発生しています:

10-18 15:14:30.469: エラー/AndroidRuntime(889): 原因: android.view.ViewRoot$CalledFromWrongThreadException: ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます。

私が使用した行は次のとおりです。

mainClass.myMapView.invalidate();// mainClass=メイン UI クラス

私のせいがどこにあるのか、誰か親切に提案できますか?

ありがとう。

- アサン

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

iphone - iPhoneアプリを1年間有効に設定するにはどうすればよいですか?

最初のインストールから1年後にアプリを無効にしたい。apnsのデバイスIDを保存するためにWebサービスを使用しており、最初のインストール日を保存することを考えています。しかし、アプリの送信中にSDKまたはアプリストアで検証期間を設定する方法/方法があるのではないかと思いました。これを行う簡単な方法はありますか?よろしくお願いします。

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

c++ - イテレータ無効化のルール

STLコンテナクラス(Vector、Dequeue、list、map、multimap、set、multiset)を操作する場合のイテレータ無効化の通常のルールは何ですか。C ++ STLプログラマーがコンテナーとそのイテレーターを操作する際に知っておく必要のある一般的なルール/ガイドラインを分類して要約することは可能ですか?

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

caching - 相互依存キャッシュの無効化とメモリ管理

私は、オブザーバー パターンを多用してすべてのデータ オブジェクトの状態が最新であることを確認する Java プロジェクトに取り組んでいます。私はこの混乱を維持することにうんざりしており、貴重なデータ オブジェクトからオブザーバー パターンの恐怖を切り離すソリューションを実装しようとしています。

このプロジェクトの詳細を抽象化して、解決しようとしている問題は次のとおりであると言うことができました。

式を表す一連のオブジェクトが存在し、それぞれが他の式の値に依存する可能性があります。

次の 2 つの操作が必要です。

eval(): 指定された式の値を取得します

この操作は、すべての式の依存関係が今再評価された場合に返される式の最新の値を返す必要があります。ただし、2 回目の操作でキャッシュが無効にされない限り、式を複数回評価する必要はありません。

update(): 指定された式を変更します

この操作は、式のキャッシュと、それに直接または推移的に依存する現在キャッシュされているすべての式のキャッシュを無効にします。

さらに、式の有効期間を管理するためのメモリ リークのない便利な方法が必要です。

擬似コードでの望ましい使用例:

OK、機能的な部分は終わりました。ここからメモリ管理の部分に進みます。

開発者が式グラフを管理する簡単な方法が必要です。理想的には、割り当ては で行われるべきでありnew Sum(a,b)、開発者はキャッシュについてあまり知識がなくても好きなように式のインスタンスを自由に渡すことができるべきであり、割り当て解除は開発者側の努力なしで自動的に行われるべきです。

また、メモリ リークがあってはなりません。つまり、式の割り当てが解除されるとき、それに関連付けられたメモリには何も残っていてはなりません。たとえば、オブザーバー パターンを無効化に使用する場合、その式をすべてのオブザーバー リストから削除する必要があります。

質問は:

これをお気に入りの言語で実装するには、どのようなアプローチをとりますか?

ガベージコレクションされていない関数型言語も大歓迎です。特に関数型言語は、純粋な関数型でこの問題にアプローチする方法がまったくわからないためです。

私の観点からの最善の解決策は、開発者のエラーの可能性が最も少ないものです。

現在の実装の詳細を意図的に公開していません。実装に根本的な欠陥を見つけたと思いますが、それを回避する方法が見当たらないからです。後で投稿しますが。

0 投票する
4 に答える
2914 参照

c++ - 消去を呼び出すときのSTLイテレータの無効化に関する問題

STL標準では、std :: deque、std :: listなどのコンテナで消去が発生すると、イテレータが無効になると定義されています。

私の質問は次のとおりです。std::dequeに含まれる整数のリストと、std :: dequeの要素の範囲を示すインデックスのペアを想定すると、すべての偶数要素を削除する正しい方法は何ですか?

これまでのところ、次のことがありますが、ここでの問題は、消去後に想定される終了が無効になることです。

std :: remove_ifがどのように実装されているかを調べると、非常にコストのかかるコピー/シフトダウンプロセスが進行しているようです。

  • すべてのコピー/シフトなしで上記を達成するためのより効率的な方法はありますか?

  • 一般に、要素を削除/消去することは、シーケンス内の次のn番目の値と交換するよりもコストがかかります(nはこれまでに削除/削除された要素の数です)

注:回答では、シーケンスサイズが非常に大きく、+ 1mil要素であり、平均して要素の1/3が消去可能であると想定する必要があります。

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

iphone - バックグラウンドに入るときに NSTimer を無効にする

アプリがバックグラウンドになったときにタイマーを無効にしようとしています。タイマーを開始するボタンを押すと、TimerController.m ファイルにあるタイマーが呼び出されます。呼び出される方法は次のとおりです。

さて、アプリがバックグラウンドになったときに mytimer を無効化したいので、[mytimer invalidate]; を入れてみました。- (void)applicationDidEnterBackground:(UIApplication *)application メソッドに、アプリがデリゲートします。ただし、デリゲートで宣言されていないため、これは機能しません。TimerController.h をデリゲートに含めることで、これは機能すると思いましたが、機能しません。

だから、私はここで何をしているのかはっきりとわかりません。手伝ってくれますか?アプリがバックグラウンドになったときに mytimer が無効になるようにするにはどうすればよいですか?