問題タブ [deferred-execution]
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.
events - ブラウザ イベント ループとは
私は GWT を使用して Web アプリケーションのプログラミングを行ってきましたが、「ブラウザー イベント ループ」という用語に混乱しています。
延期されたコマンドを実行し、ブラウザ イベント ループが完了した後に「何かを行う」必要がある状況に遭遇しました。
それが正確に何であるか、イベントループプロセス中に何が起こり、どの順序で発生するかを知りたいのですが?
c# - 実行を延期する.Net IEnumerableクラスに組み込まれていますか?
私は自分の IEnumerable クラスを構築しようとしていました。これは、最初に何かが反復されたときにすべてのアイテムに対して何らかのアクションを実行するもので、フレームワークには既に使用できるものがありますか?
ここに私が構築していたものがあるので、私が探しているものがわかります:
javascript - 連鎖メソッドのファイナライズ / 後処理
次のようなメソッドの連鎖を可能にする配列のようなオブジェクトがあると仮定します。
チェーンの最後のメソッドが処理された後にコードを実行する方法はありますか?別の.finalize()
(またはend
/ execute
/...) メソッド呼び出しを手動で追加する必要はありませんか?
これはどこかで見たことがあると思いますが、詳細は思い出せません。おそらく、先物/約束/延期がここで役立つでしょう-しかし、メソッド呼び出しがチェーンの最後であるかどうかを判断するために常に「未来を調べる」必要があるため、その方法はよくわかりません。
c# - Linqクエリをメソッド内に配置すると、遅延実行に影響しますか?
Linqクエリは、クエリによって返されるシーケンスが実際に繰り返されるまで実行されません。
繰り返し使用されるクエリがあるので、メソッド内にカプセル化します。延期された実行に干渉するかどうか知りたいのですが。
Linqクエリを以下のようなメソッドにカプセル化すると、メソッドが呼び出される1行目ではなく、2行目でクエリが実行されます。これは正しいです?
PS違いがあれば、Linq-To-EFを使用しています。
c# - c#で「yield」キーワードを使用した遅延実行で実行時の動作が異なるのはなぜですか?
IgnoreNullItems
以下のサンプル コードで拡張メソッドを呼び出すと、遅延実行は期待どおりに機能しますが、使用するIgnoreNullItemsHavingDifferentBehaviour
とすぐに例外が発生します。なんで?
アイデアを共有していただきありがとうございます。
ラファエル・ザゲット
同じ動作のバージョンを次に示します。
これは、同じ動作を示すバージョンです。この場合、resharper に foreach ステートメントを「改善」させないでください ;) --> resharper は、return ステートメントを使用して foreach を「IgnoreNullItemsHavingDifferentBehaviour」バージョンに変更します。
jquery - jQuery Deferred.pipe() を理解する
次のシナリオで jQuery Deferred.pipe() メソッドを実装しようとしています。
- $.ajax() 経由で DB にユーザーを追加します
- ユーザーが正しく追加されたかどうかの応答を取得します。
- 正常に追加された場合、$.ajax() 経由でサーバーからすべてのユーザー リストを取得します。
- jQuery テンプレートを介してリストを表示する
これは私が試したものです:
しかし、これはうまくいきません。私は何かが欠けているか間違っていることを知っています。何か助けはありますか?
c# - Dispose が最初に呼び出され、遅延実行の場合に失敗しますか?
2 つの方法があり、そのうちの 1 つは、using
ステートメント内で LINQ を使用してデータを返します。クエリの実行が延期され、使用している変数が既に破棄されているため、クエリが何らかの例外をスローする可能性があるのだろうか?
}
ところで、すでに何らかの形で尋ねられているに違いありませんが、明らかな候補が見つかりません。だから私をあまり激しく蹴らないでください:)
c# - 遅延実行と遅延読み込みでCount()を取得する
遅延実行と遅延読み込みを使用するコードがいくつかあります。
要素の数を簡単に数えることを目指しています。現在使用しているコードは次のとおりです。
これを改善できますか?
または、これにより、カウントを取得するときに使用されるメモリが増えますか?場合によっては非常に大きなファイルを処理し、可能な場合はメモリ使用量を最小限に抑えようとしています。
それぞれの場合にメモリがどのように使用されるかを説明する具体的な例を見つけようとしましたが、成功しませんでした。
助けてくれてありがとう。
c# - 遅延実行と ToList では異なる結果が得られる
クエリ可能なアイテムを検索するために書いた関数の単体テストの最中です。メソッドが機能する場合は、1 つのアイテムが返されると主張するだけです。しかし、私は0アイテムを返します。私のメソッドでは、遅延実行を使用し、ToList
それを返す前に使用します。しかし、リストを直接操作するようにメソッドを変更し、 を繰り返し呼び出すとToList
、正しい結果が得られます。
遅延実行が即時実行と同じ結果をもたらすと仮定するのは安全ではないと言うのは正しいですか?
これは、0 アイテムを返すことを示すための小さなアプリです。
2 everything that begins with 2 should be found
ブレークポイントを設定すると、が含まれているかどうかを実際に確認できますがValue
、そうではなく、false を返します。そのため、where句のFirstOrDefaultが間違ったアイテムを選択しているようです
c# - LINQ .Select()を使用して新しい型にキャストするのは遅すぎますか?
現在のプロジェクトでは、この問題に頭を悩ませました。
クライアントリポジトリ:
今、コントローラーには次のものがあります。
これは、現在存在する200の奇数行でビューをロードするのに約4秒かかります。
クライアントの名前を含む訪問モデルにプロパティ「client」を追加したいと思います。クライアントの名前は、「ClientName」タイプの2つの配列の1つからフェッチされた2つの異なるテーブルの1つから取得されます。
これは、LINQを使用した最初のアプローチです。
これは、プレーンな'ol C#を使用した2番目のアプローチです。
2番目のアプローチは、私のテストに基づくと約8〜10倍高速です。
私が見ることができる唯一の違いは、.Selectステートメントです。
誰かが私が最初のアプローチまたは別の方法で何か間違ったことをしたかどうか教えてもらえますか、なぜ最初のアプローチはとても遅いのですか?!
編集: _db.GetAllServiceVisits()の定義は次のとおりです。
編集終了
2番目の編集: ログのすべてのエントリからこの行を削除しました:
コンテキストログは次のとおりです。
質問への補遺:このデータを引き出すためのより良い方法はありますか?LINQコンテキストが提供する外部キーベースのデータアクセスは最高であると常に思っていましたが(チェックしていませんでした)、これらの追加のクエリを見ると、もうよくわかりません。
今日の後半に実行の後半の速度を投稿します(ここムンバイでは長い週末ですが、私たちはすぐに取り組んでいます)
編集終了
3番目の編集
(すべての計算/フェッチ/バインディングなどを考慮する必要があるため、Webサーバーからクライアントへの応答を検討しています。)
方法1:6.85秒(3つのテーブルから呼び出してから、C#を使用してビューモデルにキャストします)
方法2:8.59秒(3つのテーブルから呼び出してから、LINQを使用してビューモデルにキャストします)
方法3:5.76秒(単一のLINQクエリのすべて-データベースで実行)
それがそれを決定すると思います。助けてくれたみんなに感謝します。データベース側ですべてを行うという彼のアプローチがベーコンを持ち帰ったので、私はジョンを正解としてマークしています。お手数をおかけしますが、ご返信いただきました皆様に心より感謝申し上げます。
編集終了