問題タブ [lazy-loading]
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.
data-binding - 遅延読み込みとは
遅延読み込みとは
[いくつかの回答を読んだ後に編集] なぜ人々はこの用語を頻繁に使用するのですか?
ASP/ADO レコードセットを使用して、グリッドビュー用のデータまたは ADO.NET データソースをロードするとします。
なぜ人々が遅延読み込みという用語を使用するのか、彼らの「他の」タイプは何ですか?と尋ねるべきだったと思います。
linq-to-sql - linqからsqlへのスタックが自己参照エンティティでオーバーフローしました
私はそれ自体の多くを含むエンティティを持っていますが、これをLINQでSQlにマップして、e1、すべての子、その親(e1)、その子を取得して繰り返すという無限ループを実行しないようにするにはどうすればよいですか?これで、子プロパティをfalseに設定すればこれを実行できることがわかりましたが、これが最も重要なプロパティです(親についてはあまり気にしないでください)。遅延読み込みを実行させる方法はありますか?それもそれを修正しますか?
java - プロパティの遅延読み込みと session.get の問題
Hibernate には、JPA マッピングを持つ次のクラスを持つ 2 つのクラスがあります。
データベースからセッション get を使用してクラス Foo からオブジェクトをロードすると、次のようになります。
Foo foo = (Foo)session.get(Foo.class, 1 /* または DB に存在するその他の ID*/); foo の Bar メンバーはプロキシ オブジェクト (この場合は javassist プロキシですが、使用するバイトコード プロバイダによっては cglib の場合もあります) であり、初期化されていません。次に、session.get を使用して、ロードしたばかりの Foo クラスのメンバーである Bar オブジェクトをフェッチすると (同じセッションにいます)、Hibernate は別の DB クエリを発行せず、セッション (第 1 レベル) キャッシュからオブジェクトをフェッチします。 . 問題は、これが初期化されていない Bar クラスへのプロキシであり、このオブジェクト getId() を呼び出そうとすると 0 が返され、getTitle() が null が返されることです。私たちの現在のソリューションはかなり醜く、get から返されたオブジェクトがプロキシかどうかをチェックします。コードは次のとおりです (一般的な DAO 実装から)。
これを行うためのより良い方法はありますか、Hibernate フォーラムで解決策を見つけることができず、Hibernate の JIRA で問題を見つけることができませんでした。
注: foo.getBar() (プロキシを適切に初期化する) だけを使用して Bar クラス オブジェクトを取得することはできません。 class は、フェッチされたばかりの Foo オブジェクトの遅延メンバーでもあります。
gwt - gwt 遅延読み込み
大規模な GWT プロジェクトで、JavaScript の一部をその場で遅延ロードすることは可能ですか? オーバーレイのように。
PS: Iframes は解決策ではありません。
c# - フィールドによってアクセスされるプロパティは引き続き遅延ロードされますか?
マッピング ファイルで field.camelcase を使用して、コレクション、依存エンティティなどを設定し、コレクションを読み取り専用配列として公開しています。アクセス戦略が遅延読み込みに影響しないことはわかっていますが、これがまだキャッシュされることを確認したいだけです:
activerecord - Activerecord が Blob 列をロードしないようにする
明示的に要求されない限り、Activerecord に blob 列をロードしないように指示するにはどうすればよいですか? 従来の DB には、「通常の」オブジェクトから除外する必要があるかなり大きなブロブがいくつかあります。
inversion-of-control - 遅延読み込みのデータ アクセス依存関係を挿入する適切な方法は何ですか?
遅延読み込みを行うときにデータ アクセスの依存関係を挿入する適切な方法は何ですか?
たとえば、次のクラス構造があります
_customer_dao への参照をトランザクション オブジェクトに取得するにはどうすればよいですか? コンストラクターにそれを要求することは、トランザクションを少なくとも POCO のように見せたい場合、あまり意味がないように思えます。Inversion of Control Container を直接 Transaction オブジェクトに参照させてもよろしいですか? それもまたむずかしそうです。
NHibernate のようなフレームワークはこれをどのように処理しますか?
linq - LINQ to ADO.net データ サービス クエリで Expand を使用する代わりにどのような方法がありますか?
LINQ to ADO.net Data Services クエリを実行するときに、Expand キーワードを使用する代わりの方法があるかどうか疑問に思っています。expand メソッドは目的のデータを取得しますが、使用するサブオブジェクトをすべて事前に把握しておく必要があります。私の絶対的な好みは、それらのサブオブジェクトにアクセスするときに遅延ロードされることですが、これはオプションではないようです (この遅延ロードを get on そのサブオブジェクト プロパティに追加することもできますが、データ サービス参照の更新を行うと消去されます)。
この状況に対する提案/ベストプラクティス/代替手段はありますか? ありがとう。
===== MailingAddress を持つ Member を使用したコード例 =====
作品:
優先します (これが行って MailingAddress をロードした場合は本当に好きです)
または、少なくとも (注: サービス操作で LINQ to Entities として実行すると、MailingAddressReference を使用してこれに似たものがサーバー側で機能します)
java - データベースからの膨大な結果セットを処理する方法
SQL リレーショナル データベース、中間サービス層用の Java、UI 用の Web など、多層データベース駆動の Web アプリケーションを設計しています。言語はあまり関係ありません。
中間サービス層は、データベースの実際のクエリを実行します。UI は単に特定のデータを要求するだけで、データベースに支えられているという概念はありません。
問題は、大規模なデータ セットをどのように処理するかです。UI はデータを要求しますが、結果が巨大になる可能性があり、大きすぎてメモリに収まらない可能性があります。たとえば、道路標識アプリケーションには、次のようなサービス レイヤーがあるとします。
UI レイヤーは、すべての道路標識がいくつかの基準を満たすように要求します。基準によっては、結果セットが膨大になる場合があります。UI レイヤーは、結果を別々のページに分割するか (ブラウザー用)、単にそれらすべてを表示する (Goolge Earth に提供する) 場合があります。潜在的に巨大な結果セットは、パフォーマンスとリソースの問題 (メモリ不足) である可能性があります。
1 つの解決策は、完全に読み込まれたオブジェクト (StreetSign オブジェクト) を返さないことです。むしろ、個々のオブジェクトを遅延ロードするある種の結果セットまたは反復子を返します。
別の解決策は、要求されたデータのサブセットを返すようにサービス API を変更することです。
もちろん、UI は引き続き膨大な結果セットを要求できます。
このシナリオの業界標準の設計パターンは何ですか?
wcf - 拡張可能な(アドイン/プラグイン)WCFサービスホストのアイデア?
できればSystem.AddinsまたはMEFを使用して、(動的にロードされたサービスを使用して)拡張可能なWCFサーバーを構築する方法についての提案を探しています。
サーバーは、最小限の「プラグイン」API(StartService / StopService / GetStatus?/ etc)を実装するWCFサービス(DLLアセンブリに含まれ、実行時にロードされる)をホストする必要があります。
この投稿は良いスタートです。議論するいくつかの目的とポイント:
- サービスごとに分離されたAppDomainを使用する/使用しない?
- 各サービス(エンドポイント、トランスポートプロトコル)を構成する方法は?XML-configファイルまたはより良い代替手段?
- アセンブリの遅延/遅延ロード(サービスリクエストが到着したとき)?可能?使える?方法?
- ディスク上のファイルが変更されたときにアセンブリをリロードします(開発環境に役立ちます)。
- ディスクの構成が変更されると、サービスが再起動します。
そしてもちろん、他のアイデアはいつでも歓迎です;)