适当的方法来减少加载大哈希表

时间:2013-04-12 07:29:27

标签: javascript performance web-applications

我有一个包含大哈希表(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,或者也许工人是答案?

2 个答案:

答案 0 :(得分:2)

  • 异步加载,就像使用AJAX

  • 一样
  • 如果可能,请使用CDN

  • 在未终止的范围内定义它。这避免了JS每次创建和销毁它。

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

    但在这一次,酒吧生活,因为它在foo之外:

    //creating bar
    var bar = 'someValue';
    
    function foo(){
      //using bar here
      //bar still lives after foo is done
    }
    
  • 使用计时器卸载处理(搜索,访问,遍历)到WebWorker或模拟工作人员。

答案 1 :(得分:2)

首先,确保使用gzip压缩响应。这将节省大量空间,因为文本压缩得非常好。其次,不需要哈希表。你可以只有一个名字在正确位置的数组,当有人在页面中悬停空间元素时,你会在[20]中进入这个数组并检索名称。正如我所看到的那样,每个字符可以节省7个字节。所以从这里稍微有点可以加起来。但这就是我能想到的全部。