0

ユーザーが入力したすべての文字が提案のAPI呼び出しをトリガーするフォームフィールドのオートコンプリート機能を処理する場合、この呼び出しをどのようにプロキシしてスケーリングしますか?

  • ドメイン間の制限のため、Javaスクリプトから直接実行することはできません。また、APIキーが公開されるため、安全ではありません。
  • これをコントローラーまたはモデルに移動すると、サーバー側に多くのクエリが発生し、アクティブなユーザーベースが特定の制限に達したときにサーバー側に大きな負担がかかります。

そのような機能の標準的な業界慣行は何ですか?

4

2 に答える 2

1

クライアントとサーバーで非常に賢くする必要があります。余分な作業を避けるために、どこでも多くのキャッシュを使用してください。CORSまたはJSONPを使用します。そして率直に言って、これは大変な作業です。Lucene/SOLRがオートコンプリート対応のエンジンではないことは言うまでもありません。ところで:www.rockitsearch.comを見てください。それはすべての基本的な機能を備えた実装自動補完を持っています。あなたがする必要があるのは、そこにデータを登録してエクスポートすることだけです。そして、ウィジェットをWebサイトに統合します。

于 2013-01-11T05:28:49.747 に答える
0

「この呼び出しをプロキシする」とはどういう意味かわかりませんが、一般的には次のようになります。

  1. クロスドメインクエリにはJSONPを使用できます。ただし、クライアント側でパフォーマンスのペナルティを支払います。

  2. 同じドメインをクエリしても問題ありません。トピックは非常に一般的であるため、単一の答えはありません。スケーリングの方法は、インフラストラクチャによって異なります。アプリケーションが水平方向に拡張するように設計されている場合は、サーバープールにサーバーを追加するだけで拡張できます。これは、AmazonまたはAzureクラウドサービスを使用すると非常に簡単です。データベースが高速に応答するように、データベースのクエリとインデックスを最適化することも重要です。ユーザーベースが大きい場合は、パフォーマンスを向上させるために同じデータベースの複数のコピーを作成することもできます。

その時点に到達することは決してないかもしれないので、時期尚早に最適化について心配する必要はありません。あなたが得るならば、それは持っていることは良い問題であり、この場合の解決策は些細なことです。

于 2013-01-11T03:40:41.183 に答える