0

私はプログラマーではありませんが、自分のWebショップのすべてのカスタマイズを自分で行いました。私は禅カートを使用しています。私はそれを海外の顧客にとってよりユーザーフレンドリーにしようとしています、そして、zen-cartは大雑把なレベルで「国際的」に過ぎないことが明らかになりました。それは非常に米国中心であり、カナダ、英国などの他の「一般的な」国へのいくつかのトークンのうなずきがあります。

とにかく、私はサインアップシートをやり直そうとしているので、国に関係なく、すべての訪問者にとってアドレスがより意味のあるものになります。そこで彼らは国を選択し、「州」は自動入力されます...これはすでに組み込まれています(各国のすべての「州」を手動でデータベースに追加する必要があります)が、問題はJSがかなり大きくなることです。それ以上に、ラベルの表示方法を変えたいと思います。すなわち。「都市」は、アルゼンチンからの訪問者のために「自治体」と読む必要があります。明らかなのは、カナダなどの「州」です。しかし、JSはそれだけさらに巨大になります。

最終的には、約260か国をカバーする膨大な一連のifステートメントがあり、それぞれに平均8〜10の「州」があり、それぞれに「通り」、「郊外」、「都市」、「州」、 「郵便」ラベル。

だから私の質問は...これは効率的でしょうか?これは「ライト」でしょうか?クライアントブラウザにそのすべてのデータを実際に入力する必要がありますか、それともより良い方法がありますか(それでも、余分なページの読み込みがなくても動的になります)?

それとも、すべてをそこに積み上げても大丈夫ですか?私のローカルサーバーでは、かなり速くロードされます。私はWebサーバーで試したことがなく、「遅い」接続でテストする方法が本当にないので、最初から適切にコーディングしたいと思います。

ありがとう。

4

1 に答える 1

1

ユーザーインターフェイスを改善する場合、その量のデータは膨大ではありません。

サーバーは、クライアントに送信される前にデータを圧縮するgzipメソッドを実装している必要があり、反復データは非常によく圧縮されます。

JSONでこのようなデータ構造を使用する必要があると思います

var countryData = [
  { name: "USA",
    provinceName: "City",
    suburbName: "Suburb"
  },
  { name: "Canada",
    provinceName: "Province",
    suburbName: "Suburb"
  }
]

これらすべてを別のファイルに保存してJavaScriptを整理し、scriptタグを使用してメインスクリプトを実行する前にロードすることができます。

また、パフォーマンスヒットをテストするには、FirefoxブラウザのFirebug拡張機能内で実行されるYSlowなどのツールを使用します。これはyahooによって作成されており、キャッシュの有無にかかわらず、ページのすべてのコンポーネントの読み込み時間を確認でき、どのファイルが圧縮されているかを調べることができます。

于 2012-06-20T05:27:36.040 に答える