問題タブ [circular-reference]
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.
c# - XmlSerialize での循環参照
T4 テキスト テンプレートを使用して、NHibernate ドメイン モデルに対して使用する DTO POCO を生成しています。
これらの POCO は、ASMX Web サービス (Mono と互換性があるため) を使用してクライアントに送信されますがXmlIgnore
、List<>
プロパティがない場合、循環参照に遭遇します。
循環参照がクライアント側に存在するように POCO を作成できるようにする方法はありますが、Web サービスを介して渡されると参照は無視されます。
多分習慣XmlSerializer
?WCF は、Mono で使用するには十分にサポートされていません。
php - 循環参照でprint_rとvar_dumpを使用する
私はMVCフレームワークSymfonyを使用していますが、デバッグしたい組み込みオブジェクトの多くに循環参照があるようです。これにより、変数をprint_r()
またはで出力することができなくなりますvar_dump()
(循環参照を無限に追跡するため、またはプロセスのメモリがなくなるまで、どちらか早い方)。
インテリジェンスを使って自分のprint_r
クローンを書く代わりに、もっと良い選択肢はありますか?ログファイル、httpヘッダー、またはWebページ自体のいずれかに変数(オブジェクト、配列、またはスカラー)を出力できるようにしたいだけです。
編集:問題が何であるかを明確にするために、このコードを試してください:
print_r()
、、var_dump()
またはでは機能しませんvar_export()
。エラーメッセージは次のとおりです。
PHPの致命的なエラー:10行目のprint_r_test.phpで許可されたメモリサイズ134217728バイトが使い果たされました(523800バイトを割り当てようとしました)
javascript - Javascript のメモリ リーク: オブジェクトを null に代入すると機能するのはなぜですか?
メモリ リークを防ぐために使用される null への代入の修正の性質に関して、誰かが私のためにかゆみを掻くことができますか?
メモリ リークを防ぐために、DOM オブジェクトと JS オブジェクト間の循環参照を停止する次の手法はよく知られています。
問題は、なぜ上記が機能するのかということです。「ele」を null に設定すると、循環参照は確実に停止しますが、「ele」への将来の参照も防止されませんか?
それでも、イベントリスナーが起動します。「ele」オブジェクトがnullであると不平を言うでしょう(これは私たちが期待することです)。
上記の動作を考えると、Javascript エンジンの実装がイベント リスナーへの何らかの内部参照を保持し、イベントがトリガーされたときに呼び出されるのはこの参照であると推測するのは正しいでしょうか?
上記のような参照があった場合、null への代入の修正は実装依存ではないでしょうか。それとも、ECMAScript 仕様の一部ですか。
私の理解では、この修正は常にクロス ブラウザーに対して安全です。null 割り当てを適用する前に、ブラウザーの種類を検出/スニッフィングすることについて具体的に言及している例はあまり見当たりません。
===============編集==================
質問の仕方が原因で、私が伝えようとしていたことから、無意識のうちに直接的な議論をしてしまう可能性があると思います。参照されているいくつかの概念:
オブジェクト ハンドル/オブジェクト参照 ala:
上記は私のかゆみがある場所ではなく、次の行を追加したことを後悔しています。
上記は、これを閉鎖の質問に見せます。元の投稿に示されているように、エラーがスローされることを完全に期待していました。
私のかゆみは...のコンテキストに沿ったものですが、何らかの理由で、ele.onlick()
イベントが発生したときにJavascriptエンジンが直接呼び出し、要素をnullに設定することは、次のフローに似ていると考え続けています:
元の投稿で、ele が null に設定された後もイベント ハンドラーが起動することがわかっていることを考えると、私の考えでは、フローは次のようになります。
私のかゆみは、上記のほとんどの Javascript 実装がどのように機能するか、割り当てられたイベントハンドラーを指している内部参照であり、イベントがトリガーされたときに呼び出されるのはこの内部参照ですか?
または別の言い方をすれば、JavaScript エンジンの実装が を直接呼び出すの ele.onclick()
を妨げているのは何ですか (設計とアーキテクチャの問題はさておき)。
多分私の思考プロセスは異なって動作しますが、最初にnullへの代入の修正に遭遇したとき、要素参照がnullであり、ハンドラーのコードがまだ実行?
sql - 循環参照テーブルの子オブジェクトの列としてすべての親の親を取得するにはどうすればよいですか?
次のような列を持つテーブルがあります
次のようなものを返すように、エンティティのすべてのレベルの親を返すクエリを作成するにはどうすればよいですか?
私は決してSQL忍者ではありません。これは可能ですか?もしそうなら、どのように?
Microsoft SQLServerDBを使用しています。
c# - 循環参照リストの問題
小さな問題があり、あなたの意見を聞きたいです。
他のドキュメントを参照できるドキュメントを扱っています。任意のドキュメントから始めて、このドキュメントが参照するすべてのドキュメントの ID を取得する必要があります。問題は、循環参照が許可されているため、A ref B ref C の場合、C が A を参照でき、ループに入るということです。C# でこの問題を解決するにはどうすればよいですか?
小さな例:
これがドキュメントを表すクラスであるとします。
次に、いくつかの参照を持つ Document クラスを作成しましょう。
今、次のような Document クラスにメソッドを実装する必要があります
それを行う最善の方法は何ですか?特定のアルゴリズムを実装できますか?
どんな提案でも大歓迎です!
ありがとう
c# - c#構造体を使用したドメインモデルの循環参照
2つの構造体の間に循環参照があるとどうなりますか?以下の例では、メモリ割り当てはどのように機能しますか、それともエラーが発生しますか?
.net - EF 4.1 + MVC + JSON 循環参照例外の最適なソリューションは?
私は EF 4.1 Database First アプローチを使用しており、T4 テンプレートは別のアセンブリで POCO クラスを生成します。データをフェッチするためのリポジトリと、UI との通信に使用されるサービス レイヤーがあります。
カスケードドロップダウンを作成しようとしていました。私は MVC と EF 4.1 が初めてなので、stackoverflow で可能な解決策を検索しました。
これは、ビューモデル クラスのサンプルです。
私がこれまでに読んだこと、解決策は次のとおりです。
プロパティを参照する際に使用
ScriptIgnoreAttribute
しSystem.Web.Script.Serialization
ます - POCO プロジェクトで System.Web への参照を追加したくないため、これを実際に行いたくありません。EF 4.1 DbContext で遅延読み込みを無効にする - プロジェクト全体でインクルードを使用するかどうかわからない
匿名型を返す - プロジェクトが大きくなると、このアプローチで問題が発生しますか?
ViewModel を使用します - 1 つ以上の電話を持つ顧客がいるとします。最初のドロップダウン リストで顧客を選択し、2 番目のドロップダウン リストで顧客の電話をすべて表示します。
しかし、これは私の Phones オブジェクトで循環例外を生成しませんか? または、Phone オブジェクトの特別なクラスを作成しますか? それは多くの不要なコードのようです。AutoMapper を使用してください - AutoMapper の経験がないので、それがどれほど複雑かわかりません。
あなたはどちらに投票しますか、そしてその理由は何ですか?
javascript - JavaScript window.getSelection()循環参照を防ぐ
このデモを参照してください(現時点でChromeでのみ機能するselectionchangeイベントに依存します):http://jsfiddle.net/fyG3H/
いくつかのloremipsumテキストを選択してから、テキスト入力にフォーカスします。コンソールログに、DOMSelectionオブジェクトがあることがわかります。のanchorNode値がありますが、のHTMLBodyElement
いずれかが必要ですText
。
選択オブジェクトを文字列化してみるまで、なぜこれが起こっているのかわかりませんでした:http: //jsfiddle.net/fyG3H/1/
これにより、次のエラーが発生します。
Uncaught TypeError:循環構造をJSONに変換しています
window.getSelection()によって引き起こされるこの循環参照を防ぐ方法を知っていますか?
編集
他のブラウザでも機能するが、それでも間違ったanchorNodeを提供する新しいデモ:http://jsfiddle.net/fyG3H/5/
そしてJSON.stringifyで:http://jsfiddle.net/fyG3H/6/
Firefoxは、エラーをスローする代わりに空の{}を返すようです。
python - Djangoアプリでの循環モデルのインポートを避ける
私はこのような2つのアプリを持つdjangoプロジェクトを持っています:
機能の場所を明確にするための更新
items.models
タグのセットを持つすべてのアイテムを取得する別のモデルのメソッドがあります。
結果のクエリは次のようになります。
このメソッドは、タグがアイテムアプリにインポートされるためItem
、モデルとモデルを使用します。これは問題ありません。Tag
ただし、タグアプリでこのメソッドにアクセスしたいのですが、そうすると循環インポートが発生します。
今のところ、タグアプリでタグのセットを持つすべてのアイテムを取得するための私の回避策は、多対多のフィールドで逆の関係でセットの共通部分を実行することです。
これにより、さらにいくつかのクエリと共通部分が設定されます。Item.objects.filter(tags=t1).filter(tags=t2)...
タグアプリのタグモデルからのようなことをする方法はありますか?
モデルに同じクエリを実行させるために使用contenttypes
して、これを回避することができました。Item
これは受け入れられますか、それともこのコードを整理するためのより良い方法がありますか?
json - 循環構造を JSON に変換する -- どのフィールドに問題があるかを見つける方法はありますか?
Chrome でオブジェクトを stringify(...) しようとしていますが、(私の知る限り)そのような構造が存在しないにもかかわらず、「循環構造を JSON に変換しています」というメッセージが表示され続けます。
私はコードを何十回も調べてきましたが、循環参照はまったく見つかりません。この痛ましいほど役に立たないエラー メッセージ以外に、Chrome が何を怒っているのかを教えてもらう方法はありますか?