問題タブ [scalable]

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.

0 投票する
1 に答える
142 参照

jquery - 部分的に拡張可能なサイト

この例で基本的なロジックが示されているスケーラブルなサイトを作成しようとしています:

http://pastehtml.com/view/1eg2pr1.html

ブラウザー ウィンドウのサイズを変更するたびに、中央の紫色のボックスの数が変化します。

しかし、この写真に示されているように、上部の緑色の「ロゴ」ボックスをこれらのボックスの幅に合わせる方法はありますか? http://imageshack.us/photo/my-images/198/testimg.jpg/

したがって、最初の行に 7 つの紫のボックスが表示されている場合、緑のボックスはこれらと同じ幅である必要があります。最初の行に 10 個のボックスが表示されている場合は、10 個のボックスの幅になります。

おそらくjqueryを使用して、それを行うことは可能ですか? 緑のボックスで「width:100&」を使用できることはわかっていますが、それは紫のボックスの正確な幅には従いません:/

0 投票する
3 に答える
402 参照

jquery - スケーラブルなサイト - 50% 左 50% 右

次のリンクに示されている簡単なページがあります。これは、ブラウザ ウィンドウのサイズを変更すると拡大できます: http://pastehtml.com/view/1eg346q.html

現在動作しているように、左にフロートし、列に別のボックスのスペースがあると、写真が動き回ります。

問題は、ブラウザウィンドウを大きくしようとすると、最終的に新しいボックス用のスペースができるまで多くの空白ができることです - 次のように: http://imageshack.us/photo/my-images/220/scal1 .jpg/

サイズを変更するときに両方のサイトの余白を広げる方法はありますか?つまり、左に 50%、右に 50% のようになりますか? おそらくこのように: http://imageshack.us/photo/my-images/641/scal2.jpg/

私が考えることができる唯一の方法は、ボックスを中央に配置することですが、サイズを変更するときだけ、常に中央に配置したくありません...

これを行う方法がない場合、私が現在行っているようにスケーリングするためのより良い提案があり、同時に白いスペースを取り除く方法はありますか?

0 投票する
5 に答える
63263 参照

c# - C# の高性能 TCP サーバー

私は経験豊富な C# 開発者ですが、これまで TCP サーバー アプリケーションを開発したことはありません。現在、少なくとも 5 ~ 10,000 の同時接続を処理できる高度にスケーラブルで高性能なサーバーを開発する必要があります: GPS デバイスから GPRS を介して生のバイト データを取得します。

一般的な通信プロセスは次のようになります。

  • GPS デバイスがサーバーへの接続を開始する
  • データを取得したい場合、サーバーが応答します
  • デバイスが GPS データを送信する
  • 私のサーバーは、それを取得することについてデバイスにレポートを送信します(チェックサムのようなsg)
  • GPS、レポートから新しいデータを取得すると、これが何度も発生します
  • 後で GPS DEVICE が接続を閉じます

だから、私のサーバーでは必要です

  • 接続/アクティブなクライアントをトレースする
  • サーバー側からクライアントを閉じる
  • デバイスが接続を閉じたときにイベントをキャッチします
  • バイトデータを取得する
  • クライアントにデータを送信する

このトピックについてインターネットで読み始めましたが、それは私にとって悪夢のようです. 方法はたくさんありますが、どれが一番いいのかわかりませんでした。

私には非同期ソケット メソッドが最適のように思えますが、この非同期スタイルでコードを記述するのはひどく、デバッグが容易ではありません。

私の質問は、C# で高性能 TCP サーバーを実装する最良の方法はどれだと思いますか? これを行うための適切なオープン ソース コンポーネントを知っていますか? (いろいろ試しましたが、いいのが見つかりませんでした。)

0 投票する
3 に答える
530 参照

cloud - 「ホットスポット」シナリオを回避するためのバックエンド(クラウド)サーバーの設計

私は、各チャットルームの大規模なグループ(> 50ユーザー)を特に対象としたリアルタイムのグループチャットアプリケーションを設計しようとしています。すべてのユーザーが一度にアクティブにチャットするわけではありませんが、チャットルームにチャットが入ると、多くのユーザーが単にアイドル状態/リッスンして更新を受信することが期待できます。

私はクラウド指向ではないプロトタイプを作成し、クラウドベースのシステム用に再設計中です。

一連のバックエンドの「チャット」サーバー(CServer)にリダイレクトする「リダイレクト/負荷分散」サーバー(LBServer)が1つあると思います。ユーザーがクライアントから特定のチャットルームへの参加を要求すると、クライアントはLBServerに接続し、LBServerはチャットルームのインスタンスをメモリに保持している特定のCServerの接続情報で応答します。次に、クライアントはLBServerから切断し、CServerに接続します。CServerへのこの接続は、ユーザーがチャットルームにいる限り維持されます。CServerは、チャットルームの状態をログに記録するバックエンドデータベースを更新するだけでなく、CServerに接続している他のクライアントにチャットルームの更新を通知する役割を果たします。

1つのチャットルームに存在するユーザーが多すぎる場合(したがって、1つのCServerがこれらすべてのユーザーへの永続的な接続を維持する必要がある)、部屋のアクティビティがCServerの処理速度のしきい値を超えて増加すると、「ホットスポット」シナリオが展開されることをすでに想像できます。すべての更新に対応します。

この時点で、システムをスケーラブルにするための1つの単純なソリューションを考え出しました。より大きなCServerインスタンスをロードし、チャットルームの状態をコピーして、「ホット」CServerのすべてのユーザーに新しいより大きなインスタンスに再接続するように要求できます。これがそのようなシステムのスケーラビリティを処理する正しい方法であるとは思いません。

少し質問があります:

チャットのリアルタイム性を望んでいることを考えると、1つのサーバーインスタンスへの接続を維持する必要がないようにバックエンドシステムを設計するためのより適切な方法はありますか?

すでにデータベイの状態を追跡しているときに、各チャットルームの処理をすべて1つのCServerで実行するように分離する必要がありますか?ユーザーが複数のチャットルームに同時に参加できるように、部屋を空けておきたいです。現在のモデルを使用する場合、クライアントはクラウドへの複数の接続を維持する必要があります(ユーザーがいるチャットルームごとに1つ)。これはクライアント側にとっては最悪です。改訂版として、ユーザーが現在使用しているチャットルームの変更をリッスンし、それに応じて更新する「ユニバーサル」CServerへの接続を維持するクライアントを想定しています。

すべてのフィードバックと入力をいただければ幸いです。不明な点について詳しく説明させていただきます。ありがとう。

0 投票する
2 に答える
3292 参照

php - CodeigniterHMVCのパフォーマンスへの影響

OK、CodeigniterのHMVCは、HMVCパターンMVC vs HMVCなどの多くのスタックオーバーフローの議論に基づいたスケーラブルなWebアプリケーション(Kohana 3を使用)に移行する方法です。

しかし、HMVCアプローチを使用すると、Codeigniterで使用した場合のパフォーマンスにどのように影響しますか?私の理解では、HMVCは「コントローラーをシミュレート」します。ある日の「大規模な」プロジェクトを想定すると、Codeigniterの実装は将来の問題になりますか?

0 投票する
2 に答える
3323 参照

lucene - ソランドラとエラスティックサーチ

ペタバイト範囲のデータを保存する Cassandra データベースを使用しています。ElasticSearch か Solandra のどちらかを使用することを考えていますが、どちらを使用するかを決めるのは楽しい時間です。私たちのデータベースが大きくなりすぎるのではないかと思っています。ElasticSearch がスケーラブルであることは知っていますが、特に Cassandra データベースではどの程度まで拡張可能ですか。

一方、Solandra は Cassandra 向けに作成されており、拡張性に優れています。

どちらもスケーラブルですが、Cassandra を使用するとどの程度スケーラブルですか?

0 投票する
1 に答える
299 参照

html - ブラウザでテキストが拡大縮小されたときに画像の拡大縮小を許可する必要があります

私は何よりも優れた Web 開発スキルを実践するという意図で、個人の Web サイトに取り組んでいます。私はクロス ブラウザー (ほとんどの最新のブラウザーも IE6) を構築しようとしています。また、できればクロス デバイス (モバイル デバイスでも同じように維持しようとしています) の Web ページを構築しようとしています。私が構築したいのは、ヘッダーとフッターを備えた 3 列のフローティング レイアウト デザインです。これまでに、いくつかの優れたプラクティスを見つけました..そうでない場合は修正してください..

何よりもまず、構造 (HTML)、プレゼンテーション (CSS)、動作 (JS) を相互に排他的に保つことです。スケーラビリティのための最良のオプションは、em 単位よりも %units のようです 不必要に div を使用しないでください。

タグ 必要に応じてパディングを使用して、スタイリングにマージンを使用しないことをお勧めします

今私の問題は、私のウェブページに画像があることです。今まで %units しか使用していませんでしたが、画像の幅に %unit を使用すると、スケーラブルになりません。すべての Web ページで em 単位を使用し、css で em 単位で幅を設定することにより、画像をスケーラブルのままにすることができます。

しかし、それを行う前に、画像をスケーリングするのが良い方法であるかどうか、また、そのようなデザインで直面する問題は何かを知りたいと思っていました.

ありがとう このアイデアに関する提案や情報は大歓迎です。

0 投票する
4 に答える
10460 参照

c++ - C++のスケーラブルなサーバーフレームワーク

何万ものクライアントを同時に処理することを目的としたサーバーアプリケーションをC++で作成しようとしています。WindowsとLinuxで実行する必要があります。私はフレームワークとライブラリを探していて、Boost Asioに出くわしました。これは、非常に成熟していて広く使用されている代替手段のようです。主に何百万ものテンプレートが原因で、ストランド/スレッドプールに頭を巻くのに苦労しています。私のバックグラウンドは主にCであるため、Boostが一般的にいっぱいになっているように見えるテンプレートの混乱にはあまり慣れていません。ストランドやバインドなどを使用してスレッド化/同期化の側面を処理するBoostAsioの周りに比較的薄いラッパーを開発する人を見つけようとしましたが、私の予算内でそれを実行できる人をまだ見つけることができませんでした(2または300米ドル)。

Boost Asio(たとえば、WindowsのIOCPやLinuxのepollなど)と同様に拡張可能な他のライブラリ、またはより小さなフリーランスの仕事を探している熟練したBoost開発者を見つけることができるソースをお勧めしますか?

助けてくれてありがとう。

敬具、

フィリップ・ベネフォール

0 投票する
1 に答える
450 参照

php - Ajax-三次データをロードするためのベストプラクティス/アプローチ

構築しているアプリケーションに追加のデータをロードするためのアプローチを決定するのに少し苦労しています。このアプリは、1つのページが多くのフラグメントで構成されているCMSです。一部は再利用可能で、その他は排他的です。

排他的フラグメントの例は、description / authorメタタグである可能性がありますが、再利用可能なフラグメントは、リンクのリストである可能性があります。

私の現在のアプローチは、ページの大部分を構成する重要なデータ(本文のコンテンツ、タイトル、スラッグ、日付(公開/有効期限/変更)など)をロードすることです。その部分が読み込まれ、UIの準備ができたら、2つの追加のデータセットを読み込みます。メタタグのコレクション。フラグメントのコレクション。

私の会議は次のとおりです。1。スケーラビリティ2.速度3.保守性

私のアプローチは健全ですか、それとも別のアプローチを検討する必要がありますか?