2012-07-09 55 views
0

我越熟练地使用javascript,就越能表现出我想成为的人。例如,我有自动填充框,每隔一段时间就会碰到服务器,以尝试自动完成用户请求。究竟是谷歌和大多数网站如何加强他们的搜索。现在我的问题是,如果我正在查询FB api的朋友列表并将它们存储在JavaScript对象(+ - 700,全名和用户ID)中,这将如何影响性能?我无法想象它会比不断的要求服务器更糟糕。在本地存储此信息,然后查询似乎更加精通。 我在哪里画一条线来存储JavaScript对象中的信息。我希望我的服务器尽可能少,并采用了让客户端执行80%工作和服务器剩余20%的哲学。很显然,我希望客户体验顺利的应用程序。 js ninjas如何测试应用程序的性能?JavaScript中的数据对象性能

回答

0

最有效的解决方案 - 在降低网络延迟方面 - 将检索好友列表,其存储使用类似的localStorage的API,并在更新的同时在后台列表中的每个一次。在内存中保留这个大小的列表确实不应该大大影响页面性能(尽管在移动设备上可能并非如此)。如果有人有成千上万的朋友,那么你可能看到一个减速,特别是从localStorage读取数据时,但我仍然怀疑它。

决定在哪里画线很难;这取决于很多因素。 TBH这是一旦你的产品发布,你可能只知道,你的用户可以给你关于性能的反馈,让你微调。 A/B测试可以在这方面提供很多帮助。

+0

感谢您的评论。将它存储在localStorage中而不是js对象会有什么不同。它是否主要是存储在内存中而不是硬盘?由于我们必须创建跨浏览器应用程序,所以没有机会正确地探索API。 – TYRONEMICHAEL 2012-07-09 12:54:16

+0

那么,第一次用户启动你的应用程序,你会从FB中获取列表,并使用localStorage将数据写入磁盘。从这一点来看,每次用户访问应用程序时,您都可以简单地将localStorage中的数据读取到JS对象中,而不是从FB中读取数据。有了这个模型,你可以利用localStorage来支持它的浏览器;较旧的会在每个应用程序加载时从FB获取列表。 – Graham 2012-07-09 12:59:43