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

在台式机/笔记本电脑上很好,但我注意到在黑莓平板电脑上,它冻结了浏览器 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] 处进入此数组并检索名称。正如我在那里看到的那样,每个字符将节省 7 个字节。所以从这里一点点从那里一点点可以加起来。但这就是我能想到的。

于 2013-04-12T07:37:01.210 回答