4

私は、インドでオンラインで販売されている製品を比較するための比較Webサイトを開発しました。現在、サイトは完全にクライアント側です:-

  1. ユーザー入力を受け入れます。
  2. 20〜30のAJAXリクエストを作成し、すべての主要なオンラインショップから結果を取得します。
  3. クライアント側のスクリプトを使用して、結果を並べ替え、最も適切な方法で表示します。

短所:-

  1. 私のクライアント側のコードは誰でも利用できます。そのjavascript。
  2. ブラウザエラーが発生しやすくなります。
  3. 堅牢ではありません。

サーバー側にした後のデメリット:-

  1. 私のウェブサイトのトラフィックを考慮すると、サーバーはクライアントとのやり取りが長くなるため、サーバーの負荷が増加します。
  2. さまざまなWebサイトから値を取得するには、最大で10秒かかる場合があります。その間サーバーが関与していました。ピーク時に500人/分の訪問者がいる場合の負荷を考慮してください。

利点:-

  1. 私のコードは安全で安全です
  2. クライアント側での処理は最小限に抑えられます。携帯電話やその他のデバイスでも簡単に動作します。

実際に実装する前に、これらの問題について分析したいと思います。誰かが私のウェブサイトに何を選ぶべきかについて私に提案できますか?どちらのアプローチが私に適していますか?

私の質問が曖昧な場合はコメントしてください。

4

2 に答える 2

4

まず第一に、それは非常に素晴らしい質問です。

それはあなたのサイトが処理するボリュームとトランザクションに完全に依存します、そしてあなたが本当にあなたのアプリケーションをスケーリングしたいのなら、私はあなたがそれを正しくすることを望みます!最初からやります。

クライアント側にビジネスロジックを置くのをやめましょう**エンドユーザーが比較呼び出しを行うときに、エンドユーザーのネットワーク帯域幅を消費することを期待しないでください:)そして彼が最高の帯域幅を持っていることを期待しないでください。

サーバーファーム の負荷分散サーバーファームの負荷分散が適切に行われ、比較がシングルスレッドではなくマルチスレッドを使用して行われることを確認します

キャッシュの結果 **サーバー側でこれを行っている場合、ユーザーaとユーザーbが同じ比較を要求した場合、これらの要求を再度実行する代わりに、ユーザーbのキャッシュから実際にプルすることができます。

使いやす さは、読み込み中の回転する画像を表示する代わりに、ユーザーとの比較の進行状況を表示します:)

それが役に立てば幸い

于 2012-09-26T07:23:59.180 に答える
2

「ブラウザのエラーが発生しやすい」を採用している理由がわかりません。正しいライブラリ/コードをブラウザに送信すると、Javascript は思いどおりに実行されます。

どのブラウザーがリクエストを実行しているかを確認し、適切なコードを送信できます (次のように読みます: IE ではなく FF と Opera で動作するコードがある場合は、そのコードの 2 つのバージョンを、ブラウザーのグループごとに 1 つずつ記述します)。 .) そうするのに役立つライブラリがいくつかあります。

また、比較はサーバー側で行うべきものではありません。そのため、Web サイトに大量のトラフィックがある場合、クライアント側の作業はその種のものに適しているはずです。

コード保護については、その通りです。サーバー側では、誰もあなたのコードを読むことはできません。したがって、コードを読む人よりもサーバーの負荷が重要かどうかを判断する必要があります。

また、コードを難読化できることにも注意してください。それが最善の解決策ではないことはわかっていますが、多くの人がそれを読まないようにします。

編集:

サーバー側にすると、すべてのデバイスで期待どおりに機能します(すでに述べたように). ただし、サーバーの負荷が 100% にならないようにするために、いくつかのことを行う必要があります。

Chandra Sekhar Walajap結果にある種のキャッシュを使用する利点についてはすでに説明しました。あなたはそれらすべてのページをスクレイピングしているだけなので、私は個人的にもう少し先に進みます.

たとえば、24時間ごとに実行され、各製品をフェッチ/スクレイピングするスクレーパーを作成します。次に、これらすべての製品をどこかに保存します(データベースまたは必要なものとして読んでください)。この方法では、ユーザーが製品 A と B の比較を要求したときに、すべてのサイトをフェッチ/スクレイピングする必要はなく、保存した場所でそれらの製品を探すだけで済みます。ユーザーに表示します。

多くのユーザーが多くの製品を比較している場合にのみ、これにより多くの帯域幅が節約されることに注意してください。

反対に、少数の製品のみを検索する少数のユーザーがいる場合、そのようなソリューションを作成してもまったくメリットがありません。 CPU と帯域幅の両方で。

サーバーの負荷について: 何とも言えません。それは非常に多くのことに依存しているため、言うことはほとんど不可能です. スクレイピングしているウェブサイトの大きさ、各ウェブサイトにいくつの製品があるかを考慮する必要があります。使用しているハードウェアは何ですか? cURL を使用していくつかの簡単な例を作成し、いずれかのサイトからすべてを取得することをお勧めします。次に、それがパフォーマンスにどのように影響するかを確認して決定します。

于 2012-09-26T07:19:37.693 に答える