0

複数の言語でアクセスできる Web サイトを持っていますが、ロケールが異なるとページの読み込み時間がおかしいと感じます。例として、より重要なページの 1 つの読み込み時間を次に示します。

en_GB = 469ms
fr_BE = 545ms
nl_BE = 1.45s

私はすでに違いがこのコードによって引き起こされていることを理解しました:

    $format_number = Zend_Locale_Format::toNumber(
        $number,
        array( 'precision' => 2 , 'locale' => Zend_Registry::get( 'Zend_Locale' ) )
    );

このコードを削除して、フォーマットされていない数値を返すだけで、3 つのロケールすべてでページがほぼ同時にレンダリングされます。(+/- 500ms) このページには書式設定が必要な数値がかなりあるため、深刻な影響があります。

私はこれをかなり長い間見てきましたが、解決策やその説明さえ見つけることができません。

何か案は?

4

2 に答える 2

0

Zend_Registry::get('Zend_Locale')そのページで複数回呼び出していますか、それとも 1 回だけ呼び出していますか? そのページでフォーマットする数字がかなりあるとおっしゃいました。ページの先頭またはコントローラーでレジストリ値を変数に設定してみてください。

$currLocale = Zend_Registry::get('Zend_Locale');

実際Zend_Registryに同じ値を複数回呼び出している場合は、本質的に同じことを何度も繰り返しています。

また、ロケール自体の内部動作に「より深い」違いがある可能性もあります。ベースのロケールを使用してUTF-8いますか? 一部のロケールには他のシンボルよりも多くのシンボルが含まれている可能性があるため、これは非常に重要です。また、特定の OS のこの一連のロケールには、特定の既知/未知の問題がある可能性もあります。これを実行しているOSは何ですか?

于 2013-07-06T11:18:01.837 に答える