2

大きなハッシュテーブル (1 メガバイト) を含む JavaScript アプリがあります。ロード時間を短縮するためにロードする適切な方法は何ですか?

ハッシュテーブルはこれです:

function unicodeTable (num) {
    // returns the unicode name of a given unicode num in decimal
var unicodedata =
{
0x0020:"SPACE",
// tens of thousand entries here
}
...
}

アプリは Unicode ブラウザです。ユーザーが Unicode にカーソルを合わせると、その名前とコードポイントが表示されます。

PSいくつかのjs libを含まないソリューションが欲しいです。ありがとう。

補遺: ページはこちら http://xahlee.info/comp/unicode_6_emoticons_list.html

これは JavaScript http://xahlee.info/comp/unicode_popup.jsです。

デスクトップ/ラップトップでは問題ありませんが、Blackberry タブレットでは 5 分間ほどブラウザがフリーズすることに気付きました。ajax の使い方がわかりません。それとも、worker が答えなのでしょうか。

4

2 に答える 2

2
  • AJAXを使用するように、非同期でロードします

  • 可能であればCDNを使用する

  • 終了しないスコープで定義してください。これにより、JS が毎回作成および破棄することを回避できます。

    function foo(){
      //creating bar
      var bar = 'someValue';
      //using bar here
      //bar will be destroyed as soon as foo is done
    }
    

    しかし、この例では、bar は foo の外にあるため生きています。

    //creating bar
    var bar = 'someValue';
    
    function foo(){
      //using bar here
      //bar still lives after foo is done
    }
    
  • 処理 (検索、アクセス、トラバーサル) を、タイマーを使用してWebWorkerまたはシミュレートされたワーカーにオフロードします。
于 2013-04-12T07:36:54.140 に答える
2

まず、レスポンスを gzip で圧縮してください。テキストは非常によく圧縮されるため、多くのスペースを節約できます。第二に、ハッシュテーブルを持つ必要はありません。名前の配列を正しい位置に配置するだけで、誰かがページ内のスペース要素をホバーすると、この配列の [20] に移動して名前を取得できます。そこにあるように、1文字あたり7バイト節約できます。したがって、ここから少し、そこから少し足し合わせることができます。しかし、それは私が考えることができるすべてです。

于 2013-04-12T07:37:01.210 に答える