問題タブ [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.
javascript - Rails 3 - JavaScript の解析を延期する方法
Web サイトを最適化しようとしていますが、得られた提案の 1 つは、JavaScript の解析を延期することでした。数時間グーグルで検索しましたが、Rails 3でこれを行うためのエレガントなソリューションに出くわしていません.標準を使用しています
の直前に、私のコードでタグを付けます。application.js ファイルのすべての Javascript の読み込みを遅らせる比較的簡単な方法を知っている人はいますか? ありがとう。
c# - ビューをレンダリングするとき、またはそれ以前に、LINQの遅延実行が発生しますか?
MVCビューに返される非常に基本的なLINQを考えると、遅延実行はどの正確な時点で発生しますか?
コントローラ内:
モデル内:
もちろん、呼び出し時にはクエリは実行されません_fooService.GetAll()
が、後の時点まで延期されますが、正確にはどの時点で実行されますか?
- コントローラの
return View(model);
ステートメント(そのようには見えません)? - ビューの
@foreach (var item in Model)
線? - ビューの線が初めて
@item.Bar
ヒットしたときは? return View(model);
レンダリングされているビューとの間に発生する他の何か?
javascript - jQuery 遅延オブジェクトと AJAX 呼び出し
複数の AJAX 呼び出しを使用してテーブルを作成する必要がある状況にあります。私は ajax リクエストを作成し、要素の配列 (5 としましょう) を持つ JSON オブジェクトを取得します。for ループを介して実行し、各 ajax 要求の応答で、現在のループ要素と現在の ajax 呼び出しからのデータの一部を使用して行を作成し、それをテーブルの行に追加します。(私の悪い文法でごめんなさい)
遅延オブジェクトを使用してこれを実装する方法を知りたいですか? 私の理解が正しければ、これは遅延オブジェクトを使用して実装するのがより簡単になるはずですか? 正しい?
私の現在の実装
timer - Dart: 作業をイベント ループに延期するサポートされている方法として、期間ゼロのタイマーを使用しています。
実験の結果、継続時間が 0 のタイマーを作成すると、作業をイベント キューに延期できることがわかりました。この機能は、多くの厄介な再入可能性の問題を回避できるため、非常に気に入っています。これは変更されない意図的な機能ですか? ドキュメントに追加できますか?そうでない場合、これを行うためのサポートされている方法はありますか?
c# - ストリーミング WCF 多数のオブジェクト
IIS で実行されている WCF サーバーを作成して、別のコンピューター上の他のプラットフォームで使用することに直面しています。多数のオブジェクト (シリアル化) をクライアントに返す必要があります。DB からすべてのデータを取得し、クライアントの要件に従って配置するのは非常に長いプロセスであるため、ストリーミングする必要があります。
この件についていくつか読んだ後、transferMode StreamedResponseでWCFを使用すると、遅延実行でオブジェクトを返すことができ、これが私のニーズに答えるかもしれません。
彼らが説明するものと同様のWCFを実装しました。ただし、コードを次のように変更しました。
に:
したがって、大量のデータをシミュレートします。これを行うと、オブジェクトを返す前にクライアント側の関数が数秒間停止することに気付きました。
なぜこれが起こるのですか?データはすぐにストリームに流れ始めるべきではありませんか? それが遅延実行を伴うストリーミング WCF のポイントではないでしょうか。私の問題に対するより良い提案はありますか?
c# - Linq の実行順序がこのキャッチの理由ですか?
シーケンスを繰り返すこの機能があります:
今私がする場合:
私は100になると思っi
ていますが、1000になっています!私の質問は厳密には、なぜこれが起こっているのですか? Linq は、 variable と連結する必要がある最初に選択された 100 人であることを理解するのに十分なほど賢くあるべきではありませんret
か? ここで..で実行されConcat
たときに で使用されると、Select
ret.ToList()
編集:
これを行うと、期待どおりに正しい結果が得られます。
もう一度編集します。
オーバーライドしていませんEquals
。私は100人のユニークな人物を取得しようとしています(もちろん参照による)。私の質問は、なぜLinqが最初に選択操作を実行してから連結を実行しないのか(もちろん実行時に)、誰かが私に説明できるでしょうか?
c# - Func を渡すときにメソッドが正しく呼び出されない引数として
私は昨日からこの方法を機能させようとしていて、髪を引っ張っています-
基本的に、データベースから記事を取得するメソッドがあります。以下はメソッドコードです。
そして、別の「拡張機能」クラスで-
ご覧のとおり、SQL select ステートメントを実行し、結果を反復処理して操作を呼び出し、各 SqlDataReader 行を Article タイプに変換する拡張メソッドがあります (これも拡張メソッドで実行されます)。過去にこれとまったく同じ拡張方法を問題なく使用したと思います。
これをデバッグすると、dbConn.SqlRetrieveMultiple(query, operation); に到達します。F11 キーを押してステップインすると、行を完全にステップオーバーします。ネストされたブラケットの終わりのチェーンをたどり続け、最終的に sqlConnection.Open() で例外が発生します。
私が得る例外は次のとおりです。
ConnectionString プロパティが初期化されていません。
Func デリゲートを削除すると、関数が問題なく実行されることがわかりました。同じクラス内の通常のプライベート静的メソッドに配置すると同じ動作が得られるため、これは拡張メソッドまたは SqlConnection とは無関係/愚かなものでなければならないと感じています。sqlConnection.Open(); で .NET フレームワーク ソース ステップをオンにすると、行、それは .NET フレームワークの ctor メソッドにジャンプします... 要求があれば、さらにコードを投稿できますが、必要なものはすべて揃っていると思います。アイデアがあれば教えてください。
java - Google App Engine の多くの遅延タスクで満たされたタスク キューの最適なバケット サイズはどれくらいですか?
私の Google App Engine アプリケーションは、大量の遅延タスクをタスク キューに追加しています。タスクは x 秒ごとに実行されるようにスケジュールされています。バケットサイズ プロパティbを正しく理解していれば、値が大きいと、 b個のタスクが追加されるまで、延期されたタスクが実行されなくなります。ただし、タスクがスケジュールどおりに実行されるというほぼリアルタイムの要件があります。バケットサイズに達するまでタスクがブロックされるのは望ましくありません。代わりに、スケジュールされた時間にできるだけ近く実行する必要があります。
このユースケースをサポートするには、バケットサイズ1 とレート500 (現在の最大レート) を使用する必要がありますか? これをサポートするために他にどのようなアプローチがありますか? ありがとう!
c# - 「using」ステートメント内でyieldを使用する場合、Disposeはいつ発生しますか?
実行の延期とデータの破棄について質問があります。
次の例を考えてみましょう。
break
ステートメントはすぐにリーダーを破棄させますParseFile
か、それともコンテキストで考慮され、プログラム自体が閉じられるまでファイルを開いたままロックしますか?
c# - IEnumerableの遅延実行について
次のコードでは、2 番目の初期化で 1 つの「外側」と 3 つの「内側」が出力されることがわかります。しかし、最初のものがまったく印刷されないのはなぜですか。「外側」に印刷されると思います。