問題タブ [lifetime]

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 投票する
3 に答える
15013 参照

android-intent - 画面をオフにしたときにAndroidアクティビティが再作成されないようにする

画面をオフにしたときにアクティビティが再作成されないようにするにはどうすればよいですか?

私がやること

  1. Bejewelsを起動し、ジュエリー画面に移動します。
  2. 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
  3. 電源ボタンをもう一度押します。

私が見るもの

画面をオフにする前と同じ画面。

私のアプリケーション(簡単なもの、単一のWebViewを備えたWebアプリのみ)の場合、シナリオは次のとおりです。

私がやること

  1. アプリを起動します。アクティビティonCreate()メソッドは、URLをWebViewにロードします。
  2. 電源ボタンをすぐに押します。画面はオフになっていますが、デバイスはオフになっています。
  3. 電源ボタンをもう一度押します。

私が見るもの

WebViewはページをリロードしています。

私が期待したこと

Bejewelsの場合と同じように、同じ画面を見たいのですが、私のアプリの場合は、スクリプトが実行されている、フォームフィールドに入力されているなど、以前の状態のページです。

デバッグの結果、(前の質問で)私が間違っていて、画面がオンになったばかりのときにonDestroy()とonCreate()が1つずつ呼び出されていることがわかりました。また、スクリプトで再生される音楽がまだ聞こえているので、画面がオフのときは、電源ボタンをもう一度押すまで、アクティビティとWebViewの両方が存在するように見えます。

私が試したこと。

  1. android:alwaysRetainTaskState="true"同じ動作。
  2. 意図について読む(無駄に、私はそれらが私の状況にどのように適用されるかを理解していませんでした)。
  3. PhoneGapの使用。動作が異なります。電源ボタンを押すと、アプリケーション全体が強制終了されます。これは優れていますが、最善ではありません。
0 投票する
3 に答える
982 参照

c++ - C++ 一時変数の有効期間

このコードは有効ですか?

何らかの理由で、一時std::vectorオブジェクト(代入記号から右) は、構築直後に破棄する必要があると考えました(したがって、参照が無効になります)

しかし、デバッグは私が間違っていることを証明し、関数が戻るときに一時変数が破棄される理由がよくわからないことに気付きました。


基本的なことを強く誤解していると思うので、教えてください:)

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

c++ - C++-一時変数とその存続期間

この質問は、次の質問のフォローアップと見なすことができます:C++一時変数の有効期間

Qtコンテナはstream-like初期化構文をサポートしています。さて、次のコードを書くQVectorと、割り当て直後に破壊されて参照がぶら下がってしまいます。


対応operator<<する方法は次のように実装されます。

私の知る限り10.4.10 Temporary Objects、一時オブジェクトの存続期間は、それに対応する参照の存続期間と一致するように延長されると述べてconstいます。

ただし、この場合、一時オブジェクトQVector<QString>() は以前に破棄されます。

QVector<QString>&これはおそらく、最後の操作がaを返し、一時的なものの存続期間について何も知らないはずであるという事実が原因であると思いますQVector<QString>が、この説明は厳密ではなく、間違っている可能性があります。

では、なぜこれが起こるのでしょうか?

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

c++ - 返されたポインタの有効期間に対処するには?

画像を表す一連のクラスを作成しています。このクラスのアプリケーションの 1 つは、一連のタイル化された画像の上に絵を描くことです。抽象イメージ クラスは次のようになります。

私が予見する問題は、次のようなクラスを作成した場合です。

これは、非常に大きな画像のサブセクション (タイル) を必要に応じて作成、保存、および削除するように設計されているため、最終的には存在しなくなる可能性がある Pixel オブジェクトへのポインターをユーザーが保存する可能性があります。

1 つのオプションは、次のように、完了したらピクセルをチェックインするようにユーザーに要求することです。

ユーザーがピクセルを返さないと、タイル化された画像の操作が本当に混乱する可能性があるため、これはあまり好きではありません.ピクセルを返すのを忘れると、完全にロックアップする可能性があります.不要になったタイルを削除することはできません。ピクセルへのポインターが有効なままであることを保証するために、それらはロックされます。ロックアップの理由は、ユーザーが発見するのが難しい場合があります。

さらに、この懸念は一種の専門的なものです。典型的なケースでは、画像が消えるまでピクセルが消えるとは思わないでしょう。

この状況を処理するためのより良い方法はありますか? スマートポインター?どういうわけか参照をまったく返さないのですか? TiledImage を Image から継承させるのはそもそも意味がないのでしょうか? グラフィックが非常に大きいと予想される場合は、TiledImage を Image として渡すことができるようにしたいと考えています。

ありがとう。

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

c++ - 型演算子によって作成された一時への参照

std::string をラップするためのクラスが必要であり、他のすべての詳細に加えて、型キャスト演算子を使用して std::string への自動変換を提供するとします。

そのため、オペレーターはラップされた文字列オブジェクトのコピーを返します。

しかし、なぜ次のコードは正しいように見えるのでしょうか?

変換演算子は m_value の一時的なコピーを返すため、const std::string& y = xその一時的なコピーへの参照を作成します。

なぜこれが機能するのですか?参照されるオブジェクトの有効期間が延長されたのを覚えていますが、よくわかりません。

そして 2 番目の質問: const 参照を返す型キャスト演算子を使用することは可能ですか?

例えば:

では、上記のコードは一時コピーで動作する必要はありませんか?

PS: この質問は少し関連しています: Lifetime of temporariesですが、それでも別の問題です。

0 投票する
5 に答える
5576 参照

python - Pythonの変数の寿命

重複の可能性:
Pythonの「驚き最小の原則」:可変のデフォルト引数

次の2つの関数を検討してください

それらは同じように動作する必要がありますが、さらに重要なことに、引数なしで呼び出された場合、両方とも単に「[0]」を出力する必要があります。動作は大きく異なり、a()のみが常に「[0]」を出力します。

a()の機能がb()と異なるのはなぜですか?

関数に引数が渡されていない場合に変数をデフォルトで上書きしたい場合は、リストAPIを使用できないようです。そして、あなたがそうするならば、関数はそれが以前に変数であったものを「覚えている」でしょう。

私のコードの状況は再帰関数に現れるので、不要な変数を「削除」するだけでは実際には機能しません。引数なしで関数を呼び出すたびに変数を上書きする方法はありますか?

何時間もの研究の後で、私はこれを発見しました。上記の質問に関連している可能性があり、回答につながる可能性があります。次のようにライフタイムクラスを定義できます。

次に、2つの関数を定義します。

引数のデフォルトを一度評価してから、その評価が何であれ使用するようです。「作成中:a」または「作成中:b」とは決して言いません。したがって、デフォルトの引数を毎回評価すると、実際の質問に対する答えにつながる可能性があります。

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

jdbc - Derby / JDBC接続の有効期間(またはアイドルタイムアウト)

JDBCを使用してDerbyデータベースに接続すると、しばらくすると、DerbyまたはJDBCが接続を自動的に閉じます。(これは、「接続ライフタイム」値またはタイムアウト値と呼ばれる場合があります)。

タイムアウト値はどこで確認できますか?接続を閉じるのはDerbyまたはJDBCですか?これは「アイドルタイムアウト」値なので、その接続でアクティビティが発生した場合、DerbyまたはJDBCは更新され、(LastActivity + IdleTimeoutValue)で接続が閉じられますか?

DriverManager getConnectionの接続タイムアウト など、多数のページを 確認しました。タイムアウト後にJDBC接続を再確立するにはどうすればよいですか。

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

wpf - WPF/Prism アプリで各 ViewModel の IUnitOfWork をインスタンス化する

次のようなリポジトリがたくさんあります。

および次のような Unit of work クラス:

今、私は ViewModels が解決されるたびに、新しいIUnitOfWorkインスタンス化が必要です。私のViewModelのほとんどは次のようなものです:

ViewModels は常に次のように Unity Container を使用して解決されます。

そして私の質問は、どのように、どこでViewModel自分のを登録し、IUnitOfWorkそれぞれIUnitOfWorkのインスタンスを作成するのですか?

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

javascript - jQueryとAJAXを使用したJS変数の有効期間

私は現在、AJAXの非同期動作を回避しようとしています。問題は、私がすべて待たなければならない不特定の量のAJAX呼び出しがあることです。私はjQueryを使用して、成功ハンドラーを含む最後のajax呼び出しが終了するとすぐに手動で解決される遅延オブジェクトを作成しています。正常に動作しますが、then()関数が実行される前に、すべてが発生した関数が終了した(およびその関数内で宣言されたすべての変数をクリーンアップした)ようです。この問題を解決するには、必要な可変ユーザーをグローバルに宣言する必要があります。

私が宣言した場合

その後、それは動作しません。コンソールは、varusersが宣言されていないと述べています。(コード例を参照)。

この問題を解決するためのクリーンなアプローチは何ですか?必要なすべての変数をグローバルに宣言することは、私にはあまり良くないようです。

私のコード例でjsfiddleへのリンク

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

asp.net-mvc - ASP.net MVC 4セッションCookieは、ユーザーがブラウザーを閉じると期限切れになります

私はこの男のように同じ問題を抱えていました。私は幸運だったので、彼の解決策も私のために働きました。でも少し汚いと思いますし、もっといいものはないかと思っていました。

IISでこの構成を設定しましたが、ユーザーがブラウザーを閉じるとCookieは常に期限切れになります(「Cookieハック」を使用しない場合)

IIS構成を示す画像

何か案は?

編集:明確にするために:失われるのはサーバー側のセッションではなく、「ASP.NET_SessionId」Cookieの有効期間のみであり、これは正しくありません。

EDIT2:いくつかの調査の後、ASP.NET_SessionIdCookieが実際に設定されるのはいつか疑問に思いました。(Firefoxを使用して)削除してページを更新すると(数回でも)、新しいページが表示されません...ここで何が起こっているのですか?

EDIT3:セッションに何かを入れると、セッションID Cookieが設定されることがわかったので、質問(EDIT2)はオフになっています。