【问题标题】:Performance issue when typing into search input when retrieving objects from store从商店检索对象时输入搜索输入时的性能问题
【发布时间】:2014-03-01 20:04:27
【问题描述】:

我有一个搜索字段,可让用户搜索书籍(过滤记录,使用 ember-data 检索)。

我发现从我的组件 (see jsbin) 中的 results 计算属性访问商店会导致在搜索字段中输入非常慢(在我的 PC 上很明显,在智能手机上很糟糕)。

Here is a screenshot 键入搜索查询时的时间轴窗格。显示的部分显示每次按键都会导致大量布局(搜索字段似乎在每次按键时重新呈现)。我还提供了exported timeline,您可以将其作为explained here 加载到您的开发工具中

我尝试在jsfiddle 中重新创建该问题,但它似乎工作得很好。不同之处可能在于,我在 jsbin 中使用的是固定装置,而在我的应用中,我从真实的 API 中检索数据。

我不明白是什么导致了这种行为。从我能提供的数据中可能很难得出任何结论,但是有人有什么想法吗?有没有人遇到过类似的性能问题?

2014-03-01 更新

我应该注意,只有在 results 计算属性包含对存储的调用时才会发生性能损失。如果我用任何其他东西替换它(比如只返回 [],或者一些随机异步方法——比如 $.get),它不会显示这个性能损失。

另外,我要明确一点(以防您没有阅读代码),results 计算属性不会在每次按键时调用,而是仅在提交搜索时调用。

【问题讨论】:

  • 只是一个想法,但您可以检查网络请求选项卡,看看 Ember Data 是否在每次击键时都发出新的 GET 请求?
  • 它没有。事实上,results 计算属性不会在每次按键时调用(仅在按下 enter 时)。我无法理解未调用的方法如何影响应用程序的性能。

标签: ember.js ember-data


【解决方案1】:

这不是 Ember/Ember 数据错误,但显然是 Google Chrome 错误。

我创建了一个new question regarding the issue here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多