問題タブ [persistence]
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 を使用してアプリケーションの一部を実装し、サーバーへの永続的な接続を提供する一般的な方法はありますか? クライアントがファイアウォールの背後にあるかどうかに関係なく、サーバーがクライアントにデータをプッシュできるようにする必要があります。前もって感謝します
c# - C#: フォームに Bounds と WindowState を記憶させる方法 (デュアル モニターの設定を考慮に入れる)
フォームが継承できるクラスを作成し、フォームの場所、サイズ、および状態を処理します。そして、それはうまく機能します。1つのことを除いて:
メイン画面とは異なる画面でアプリケーションを最大化すると、(最大化する前の) 場所とサイズは正しく保存されますが、(以前の状態に従って) 最大化すると、メイン モニターで最大化されます。その後、通常の状態に戻すと、以前の別の画面に移動します。もう一度最大化すると、もちろん正しい画面で最大化されました。
だから私の質問は...どうすればフォームを作成できますか?最大化されたときに、どの画面で最大化されたかを覚えていますか? また、フォームが再び開いたときにそれを復元するにはどうすればよいですか?
問題に対する完全な解決策の種類
画面に表示されている場合の方法について非常に良いヒントが含まれている回答を受け入れました。しかし、それは私の問題の一部に過ぎなかったので、ここに私の解決策があります:
ロード中
- 最初に保存され
Bounds
、WindowState
任意のストレージから取得します。 - を設定し
Bounds
ます。 - または
Bounds
のいずれかで表示されていることを確認してください。Screen.AllScreens.Any(ø => ø.Bounds.IntersectsWith(Bounds))
MdiParent.Controls.OfType<MdiClient>().First().ClientRectangle.IntersectsWith(Bounds)
- そうでない場合は、実行してください
Location = new Point();
。
- そうでない場合は、実行してください
- 次に、ウィンドウの状態を設定します。
閉店時
- 保存し
WindowState
ます。 - である場合
WindowState
はFormWindowState.Normal
保存Bounds
し、そうでない場合は保存しRestoreBounds
ます。
以上です!=)
いくつかのサンプルコード
したがって、 Oliverが示唆するように、ここにいくつかのコードがあります。肉付けする必要がありますが、これは、次のことを望む人のための出発点として使用できます。
PersistentFormHandler
データをどこかに保存して取得します。
注 1:WindowState
load メソッドでは、以前に保存されたWindowBounds
およびその他の値を探す必要があります。SQL Server を使用し、 、、( の場合)、、、、、のWindow
列を持つテーブルがあります。したがって、ウィンドウごとに、ユーザーとマシンごとに 、、、を含む 1 つの行が作成されます。さらに、 への外部キー、タイプの列、およびタイプの列を持つテーブルがあります。見つからないものがある場合は、デフォルトのままにして false を返します。Id
Name
MachineName
Environment.MachineName
UserId
WindowState
X
Y
Height
Width
WindowState
X
Y
Height
Width
WindowValues
WindowId
Key
String
Value
Binary
注 2: save メソッドでは、もちろん、Load メソッドで行うこととは逆のことを行います。の行を作成しWindow
、WindowValues
それらが現在のユーザーとマシンにまだ存在しない場合。
PersistentFormBase
このクラスは前のクラスを使用し、他のフォームの便利な基本クラスを形成します。
そして、それはほとんどそれです。これを使用するには、フォームは PersistentFormBase から継承するだけです。これにより、境界と状態が自動的に処理されます。スプリッターの距離など、他のものを保存する必要がある場合は、ValuesLoaded
およびStoringValues
イベントをリッスンし、それらの中でGetValue
およびStoreValue
メソッドを使用します。
これが誰かを助けることを願っています! その場合はお知らせください。また、改善すべき点や改善点があればフィードバックをお寄せください。学びたいです=)
sql - ORMまたは順序列を持つSQLテーブルを効率的に処理するためのもの
注文列で並べ替えられたエンティティの順序付きリストを含む SQL テーブルを使用する Java アプリケーションを取得しました。リストの途中にあるものを追加/削除したいと思います。さて、いくつかの永続化フレームワーク / orm / you-name-it が注文列のバッチ更新でこの種の機能を提供できるかどうか疑問に思っています。
基本的なケースでは、Hibernate (およびおそらく他のものも) がこの機能を提供します。問題は、オブジェクトが一度に 1 つずつ処理されることです。これは、リストが十分に大きい場合に問題になります。別の解決策は、たとえば次のように、バッチ SQL 更新を使用して行うことです。
これはデータベース エンジンによって非常に高速に実行されますが、サポートされていません。
さて、オブジェクトとそのバージョン管理、ダーティチェックなどを考えると、この種のバッチ更新はあまりうまくいかないことを理解しています. -それはいくつかの助けを提供します。もちろん、私はカスタム SQL/HQL/... でそれを行うことができますが、すでに何らかの解決策があるかどうか疑問に思っていました (他の誰かが以前にこのようなことを行い、それをオープンソースにすることさえできたと思います)。また、問題に関連する他の良いアイデアも大歓迎です =)
flash - ムービークリップと ActionScript の保存 - Flash 共有オブジェクト LSO
オブジェクト(およびすべてのサブクラス、配列、文字列) をFlash LSOにローカルにユーザーのコンピューターに保存できることを知っています。
MovieClipまたはFunctionを保存することは可能ですか?
MovieClips で一度試してみましたが、MovieClip への参照(ポインター) を LSO に保存しただけなので、MovieClip バイナリ データ全体を再度取得することはできませんでした。
mysql - バックアップ永続ストア。私のオプションは何ですか?
プロバイダーからのコールバックを受け入れるサービスがあります。 動機:コールバックを失うことは絶対にありません(もちろん、ネットワークに到達できなくなった場合を除きます)。
不可能が発生し、しばらくの間mysqlサーバーに到達できなくなったとしましょう。何度か再試行して失敗したら、セカンダリ永続ストアにフォールバックしたいと思います。
私のオプションは何ですか?キュー、メモリ内キャッシュ?
java - Java で異なるコンテンツを受信する
問題:
さまざまなソースからさまざまなタイプのコンテンツを受け取り、それらを正規化し、JDO を介して永続化する必要があります。
素朴な解決策?:
データ型ごとに特定のポートを作成してリッスンします。
また
一連の複雑な解析を行う
一見理想的なソリューション:
FOO://myhost.tld、BAR://myhost.tld などのカスタム URL タイプを使用します。その後、任意のアプリケーションがカスタム タイプに固有の URL に送信でき、ホストは理想的には Java の URLConnection および URLStreamHandler 抽象クラスを使用して、適切な正規化スレッドを生成するファクトリを作成します。または、接続URLを取得する他の方法があれば、それで十分だと思います
これは可能ですか?私はAPIを調べましたが、Javaサーバーソケットでこれらを使用できるかどうかを判断できない他のドキュメントがあります。
いくつかの (多くの? ほとんどの?) ケースでは、私はクライアント コードに責任を負いません。
ruby-on-rails - Ruby on Rails の永続性?
RoR でページの読み込み間でデータを保持する方法はありますか? 私は memcached のようなものを探していると思いますが、TCP/IP のオーバーヘッドはありません。たとえば、PHP にはAPCがあります。
理想的な解決策は、メモリ内の何かです。