問題タブ [data-layers]
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 - Javascriptデータレイヤーアーキテクチャの支援
私はかなり複雑なHTML5+Javascriptゲームを作っています。クライアントは、彼らがいるエリアに応じて、ゲームのさまざまなポイントで画像とデータをダウンロードする必要があります。Javascriptアーキテクチャのデータレイヤー部分に関するいくつかの問題を解決するのに大きな問題があります。
データレイヤーで解決する必要のある問題:
- 古くなったアプリケーションで使用されているデータは、新しいデータを取得するサーバーが呼び出されるたびに自動的に更新される必要があります。
- サーバーから取得したデータは、同じデータを2回要求することによるオーバーヘッドを減らすために、ローカルに保存する必要があります。
- データへのアクセスが必要なコードのどの部分でも、データがすでにローカルで利用可能かどうかに関係なく、簡単かつ均一な方法でデータを取得できる必要があります。
これを達成するために私が試みたのは、2つの主要なコンポーネントを持つデータレイヤーを構築することです。1。データへのアクセスを提供するレイヤーの部分(get *メソッドを介して)2。ローカルデータをサーバーからのデータと同期します。
ワークフローは次のとおりです。
ゲームが一部のデータにアクセスする必要がある場合、そのデータのデータレイヤーでget *メソッドを呼び出し、コールバック関数を渡します。
get *メソッドは、データがすでにローカルで利用可能かどうかを判別します。その場合、データを直接返すか(コールバックが指定されていない場合)、データを渡すコールバック関数を呼び出します。
データが利用できない場合は、コールバックメソッドをローカルに保存し(setupListener)、最初に要求された情報を渡す通信オブジェクトを呼び出します。
次に、通信オブジェクトはサーバーにajax呼び出しを行い、データが返されるのを待ちます。
データが返されると、データレイヤーが再度呼び出され、取得したデータを公開するように求められます。
次に、データレイヤーはすべてのデータをローカルオブジェクトに格納し、最後に元のコールバック関数を呼び出して、要求されたデータを渡します。
これにはいくつかの問題があり、常に私を悩ませています。最も迷惑な順にリストします:)。
- このプロセスを通過する呼び出しを追加する必要があるときはいつでも、追加するのに時間がかかりすぎます。(少なくとも1時間)
- ジャンプとコールバックの受け渡しの量は混乱を招き、エラーが発生しやすいようです。
- データを格納する階層的な方法は、同期と管理が非常に困難です。その次の詳細。
上記の問題#3に関して、次のような構造を持つ保存されているオブジェクトがデータレイヤーにある場合:
TeamIdを渡してデータを取得できる方法でチームを保存したいので(例return Teams[392];
)、チームが存在するバトルに関連してチームも保存したいので(this.Account.Battles[0].Teams[0]
); 同じチームの各インスタンスを最新の状態に保ち、同じオブジェクトIDを維持するという悪夢があります(したがって、実際には2回保存するのではなく、使用されている場所でデータが自動的に更新されるようにします。これは、データレイヤー)。
それはとても厄介でごちゃごちゃしているようです。
助けてくれて本当に感謝しています。
ありがとう
.net - CSLA.NETFrameworkのパフォーマンス
私たちのシステムは、EntityFrameworkベースのデータレイヤーを使用しています。ここ数ヶ月、データ転送、ビジネスロジック、UIにEFによって生成されたエンティティを使用してきました。
アプリケーションがどんどん大きくなっているので、別のビジネスレイヤーを作成することを決定し、CSLA.NETFrameworkを使用してそれを実現しました。これは、システムの負荷が増加するにつれて「スケーリング」するのに役立つはずでした。
新しいBLを作成している最中であり、新しいBLを使用するように移行する前後のアプリケーションモジュールのパフォーマンスを比較しています。パフォーマンスがほぼ50倍遅くなっていることに気づきました。それは50%ではなく、50倍遅くなります。
BLを導入すると、レイヤーが追加されるなどの理由で遅延が追加されることはわかっていますが、このような遅延になるとは思っていませんでした。
これは正常ですか?(レイヤーが追加されたために)許容可能な導入遅延と「これまでに得られる以上の損失」の間に線を引くための基準はありますか?
ありがとう。
xcode - DAO マネージャーとブロックを使用して DAO レイヤーを実装する
次のページの Java のチュートリアルに基づいています: http://tutorials.jenkov.com/java-persistence/dao-manager.html ,
iOS用のxCodeで同じ概念を実装しようとしています。
目標は、 DAOManager を提供することです: DAOCommand (プロトコルとして定義) + 彼の execute メソッドの実装。プロトコルを実装する特定のインターフェイスを作成することもできますが、前述の例のように、呼び出すときにメソッドを実装したいと考えています。私が正しければ、BLOCKを使用してobjective-cでそれを達成することが可能です。
上記のページで提供されている Java コードの例:
CRUD サービスを要求するコードのサンプル:
私は次の方法でそれを実装しようとしました: 1/ DAOCommand:
2/ DAOManager を呼び出すメソッド getListOfPoi を持つ私の PoiCRUDService インターフェース:
3/ executeAndClose メソッドを持つ私の DAOManager :
コードを見ると、DAOEntity (POIDAO) が作成されていません。実際、サンプル Java コードを xCode に変換する方法を理解するのに苦労しています。ステップと方法に関するアイデアはありますか?
アイデアやアドバイスをありがとう。セント。
asp.net-mvc - MVC 4 - データ層で WCF を使用する
私のテスト プロジェクトでは、WCF サービスを作成して実行しました。次に、MVC 4 プロジェクトを作成しました。1 つのソリューションの下でレイヤーに分割されます。
- モデル層。
- UI/View/Controller レイヤー
- リポジトリ層。
簡単なテストを行うには: UI レイヤーで、WCF サービスへの Web 参照を追加しました。コントローラーでは、ビューにドロップダウンを設定するために "使用" して WCF サービスに接続しました。
しかし、私は依存性注入で分離を推進しています。
リポジトリ レイヤーでは、populate ドロップダウンを使用してインターフェイスを作成し、それを挿入しました。問題ない。
私がコンセプトに苦労しているのは:
- UI レイヤーで WCF サービスを使用し、リポジトリ レイヤーで参照する必要がありますか? (正しくないようです)
- 別のプロジェクト (データ レイヤー) を作成し、Web 参照を WCF サービスに追加してから、リポジトリからデータ レイヤーへの参照を作成しますか?
これにより、別の質問が発生します。別のプロジェクト (レイヤー) で WCF サービスへの Web 参照を作成すると、WCF サービスに関する情報がメインの config.sys ファイルに存在しません...
だから私はこの部分を把握するのに苦労しています...もっと読むべきものはありますか?
asp.net - 既存の 3 層 DAL-BL-UI アプリケーションを使用して、DAL を別のサーバーに分離する方法は?
1 つの Web サーバーにインストールされた既存の 3 層アプリケーション (DAL-BL-UI) があります。Web サーバーは、Framework 4 ADO.NET を使用してデータベース サーバー (MSSQL) と直接通信します。データベース サーバーと直接通信しないように既存のアプリケーションを変更する最速の方法は何ですか。最小限のコード変更で、Web サーバーとデータベース サーバーの間に「中間サーバー」を追加したいと考えています。
何か案は?
c# - オブジェクト参照がオブジェクトのインスタンスに設定されていません
複数のレイヤーを使用して WCF アプリケーションを構築していますが、DB に新しいオブジェクトを追加しようとすると、この例外が発生します。コードサンプルを提供します。ここで私を助けてください。エラーが発生していますscenaristBLL.Insert(s);
ScenaristController
クラスで新しいScenaristオブジェクトを作成しようとしている私の方法は次のとおりです。
また、ここに View クラスがあります。
DateOfBirth と DateOfDeath が問題になる可能性があると思います。これらは DateTime 形式であるためです。ユーザー入力から DateTime 形式を取得する方法がわかりません。単なる推測で、実際にはわかりません。
さらに、ここに他のレイヤーがあります... BLL:
ダル:
javascript - 変数が Google タグ マネージャーのデータレイヤーに渡されないのはなぜですか
daysLeft 変数を Google タグ マネージャーのデータレイヤーに渡そうとしていますが、うまくいきません。私が使用する場合はこれを使用します。
タグを起動しますが、レポートでは daysLeft として表示されます。タグを起動しようとすると
タグが機能しません。
variables - Google タグ マネージャーのカスタム HTML タグを使用してページにデータを入力する
gtmについて質問です。
現在、データレイヤーに必要なすべてのデータを作成できるスクリプトを作成しました。これは、データレイヤーがどのように見えるかです(ページソースコードから):
これはすべて私のストアから生成されたものですが、キーは GTM を通じてこれらの変数を使用できるようにすることです。
そのため、GTM UI 内でカスタム html タグを作成して追加しました。
また、「visitorLoginState」という名前のカスタム マクロ -> データ レイヤー変数を作成し、応答で「visitorLoginState」ではなく「NO」と表示されることを期待しました。しかし、「visitorLoginState」を表示しているだけです
c# - 1 つの CS ファイルで同じ名前の異なるクラスを処理する
それぞれクラスDonkeyを宣言する 2 つの WCF サービスを使用しています。これらのDonkeyクラスは、構造は同じですが、名前空間の問題により同じ型ではありません。
ここまでは usingを使用していますが (ここでfi を説明)、もう少し厳密な管理下に置きたいと考えています。
両方のDonkeyクラスを相互にマップするデータ コントラクト コンバーターを配置する方法 (および場所) に関する提案はありますか? ちょっとばかげた質問であることはわかっています。それが可能かどうかさえわからないという事実と関係があります。私の定式化を自由に修正してください。
すべての提案を歓迎します。私は独自のデータ定義レイヤーを作成し、独自のより優れた Donkeyオブジェクトを作成することを検討しています (あえて Futurama の Bender への参照を使用する場合は、酒と売春婦を使用します)。