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

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

c# - WCF を介して遅延実行を実現/維持することは可能ですか?

最初は、遅延実行が予想されるLINQクエリ(EFなど)がありました。

しかし、現在、そのようなプロバイダーは WCF サービス (および IoC) に移行しています。

WCF 呼び出しで遅延実行を維持することは可能ですか?

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

javascript - スクリプトの実行をしばらく延期する

javascriptで、トップレベルのクロージャーにある自己実行関数の実行を延期することは可能ですか? (分かりやすいように、jQueryはこれを使っています。グローバルスコープで自己実行機能を持っています)

ここでの私の目的は、外部スクリプト全体をダウンロードを延期せずに後で実行できるようにすることです。これにより、できるだけ早くダウンロードしてイベントの後に実行します (そのイベントがいつ発生するかは私が決定します)。

これも見つけました:
https://developer.mozilla.org/en-US/docs/DOM/element.onbeforescriptexecute

私が欲しいものの「パート1」のように聞こえます。キャンセルすると、スクリプトは実行されません。しかし、その後...後で効果的に実行するにはどうすればよいですか?

注 1:私はその外部スクリプトをまったく制御できないため、変更することはできません。

注2:私もこれを要求した人も、このようなことが原因でIEが遅くなっても気にしません(ええ、本当です!(s)彼は私のようなアンチIEです)

編集(追加情報):
@SLaksサーバーは、Apacheが送信するデフォルトのヘッダー(そう思われる)に加えて、12時間キャッシュするように注文するキャッシュ制御ヘッダーを送信します。
ドメインに関するルールの POV から、クロスドメインです。
他のサーバーに関する定義を変更することはできません。でも、お願いしてみることはできます。

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

linq - 列挙可能:「マテリアライズ」は正式な用語ですか?

「マテリアライズ」はこのようなコードの良い名前ですか、それとももっと良い (そして公式の) ものはありますか?

編集:コード(およびその目的)を明確にしました

問題:

拡張メソッドを使用すると、最初の行がより宣言的になります。

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

c# - Linqクエリをキャッシュする-これは可能ですか?

だから、これはエッジケースのように見えるかもしれませんが、私はこれが可能かどうか単に疑問に思っています。私が持っているのは、静的セットと遅延セットの組み合わせで、IEnumerableたとえば次のようにラップされています。

したがって、ここで何が起こるかというと.Take(someNumber)、列挙型を呼び出すと、遅延コンポーネントの評価を試みる前に、最初に静的データから要素が返されます。事実上、時間のかかる可能性のある生成タスクを列挙型の背後に「隠して」、これらの要素を取得する必要はありません。LINQの性質が延期されているため、実際には評価されません。

ただし、後で使用するためにこのクエリをキャッシュすることはできないと思います(Iteratorの状態がキャッシュに保持されるとは思いませんか?)または、結果を列挙せずにこれを行う簡単な方法はありますか?保存する?

理想的には、私のフローは次のようになります。

したがって、同じクエリを何度も再利用してデータを要求できますが、DBを再クエリする必要がない可能性があります。これを行う方法はありますか?

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

wordpress - Wordpress - DOM のロード後に Javascript の解析を延期して実行する方法は?

wp_enqueue_scripts() を使用して JS ファイルを設定し、最後のパラメーターを使用してそれらをフッターに配置しています

しかし、gtmetrixでテストすると、Javascript の解析を延期する必要があることがわかります。

Wordpress で DOM がロードされた後に Javascript の解析を延期して実行するにはどうすればよいですか? おそらくこれを行うことができる wp_enqueue_scripts() へのパラメーターはありますか?

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

multithreading - IEnumerableメソッドと遅延実行の結果

ここで説明されているように、LINQ での遅延実行を理解しています: LINQ での遅延実行の利点は何ですか?

ただし、遅延実行は、特にマルチスレッド シナリオなどでバグにつながる可能性があります。ロックの外で共有コレクションに対して実行される評価。遅延評価を返すメソッドがいくつかのメソッド層の深さでネストされている場合、適切にロックするように覚えたり追跡したりするのは (少なくとも私にとっては) 非常に難しくなります。

無限シーケンス (フィボナッチなど) のような特殊なケースを省略し、コレクションのフィルタリングが完了したと見なされる (つまり、消費者が結果をさらにフィルタリングする可能性は低い) と仮定すると、返されるときに「最良のアプローチ」と見なされるものメソッドからの IEnumerable のコレクション -- 既に評​​価または延期されている必要がありますか?

注:「最良のアプローチ」は、他の手段の効率/コードの安全性の観点から定義できます。応答で確認してください。コミュニティがこれをどのように行っているか知りたいです。

後続の質問: 結果が評価されるか遅延されるかをメソッド名で明示的に述べることに意味はありますか?

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

go - プログラムの終了時にコードを実行する方法はありますか?

init任意のパッケージで呼び出される関数を定義できることを知っています。これらの関数は の前に実行されmainます。これを使用して、ログ ファイルと DB 接続を開きます。

main関数の最後に到達したか、中断されたために、プログラムが終了したときに実行されるコードを定義する方法はありますか? 私が考えることができる唯一の方法は、メインで使用される各パッケージで遅延関数を手動で呼び出すことですterminateが、それは非常に冗長でエラーが発生しやすくなります。

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

c# - Linq、XmlNodes、foreach および例外

次のコードを検討してください。

このコードをVisual Studio Express 2010で実行すると、予想どおり例外が発生しません。繰り返しながらリストから何かを削除しているので、1つ期待します。

私が取得するのは、最初の子ノードのみが削除されたリストです。

ここに画像の説明を入力

無効な操作の例外が発生しないのはなぜですか?

IDEOne.com の同等のコードでは、予想される例外が発生することに注意してください: http://ideone.com/qoRBbb

また、すべての LINQ ( .Cast().Where()) を削除すると、同じ結果が得られます。1 つのノードのみが削除され、例外はありません。

VSExpress の設定に問題はありますか?


遅延実行が関係していることは知っていますが、ソース列挙 (子メモ) を反復するために where 句が反復されると予想されることに注意してください。これにより、期待している例外が発生します。

私の問題は、VSexpress では例外が発生しないが、IDEOne では発生することです (両方/すべてのケースで例外が発生するか、少なくともそうでない場合は正しい結果が期待されます)。


Wouter の回答から、例外を与えるのではなく、最初の子が削除されたときにイテレータを無効にしているようです。公式にそう言っているものはありますか?この動作は他の場合に予想されますか? 「サイレントだが致命的」という例外ではなく、サイレントにイテレータを無効にすることを呼びます。

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

c# - async/await で Linq の遅延実行を使用して刺された

私は非同期/待機が初めてで、タスクのリストを使用してオブジェクトのリストに対して操作を実行するためにそれをいじっています。Linq を使用して、オブジェクトのリストとタスクのリストの両方を生成しました。以下の例は少し不自然に見えますが、実際のコードを簡略化したものです。

示されているようにコードを実行すると、すべてのタスクが完了した後 (待機後)、オブジェクトの Now プロパティは更新されておらず、すべてのタスクのステータスが Running のままであることがわかりました。

.ToList<>() を介してオブジェクトとタスクの両方を実際のリストに変換することで Linq の遅延実行を排除することで、コードが期待どおりに機能することがわかりました (オブジェクトが入力され、タスクはすべて完了するまで実行されます)。

私は Linq の遅延実行に精通していますが、このコードで何が起こっているか (何が起こっていないか) に本当に混乱しています。私はおそらくasync/awaitで初心者の間違いを犯しています...それは何ですか?

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

entity-framework - クエリ結果のEntityFrameworkカウントとカウントリスト

同じ値を生成する必要がefQuery.ToList().Countありますか?efQuery.Count()

同じ値を生成しない可能性はefQuery.ToList().Countありますか?efQuery.Count()