我们有一个包含 26 行表格的页面。根据我们绑定的数据,每一行将包含一个<input>
或元素。<select>
当绑定到包含 5-30 个选项的元素时,渲染一个页面大约需要 5 秒。如果我删除绑定,页面会在一秒钟内呈现。
绑定到 Ember.Select 视图时是否存在已知的性能问题?或者,我可能做错了吗?我正在使用 Firefox 22。IE9 的速度大约是原来的两倍。在此期间 CPU 未固定。我正在使用 ember 1.0rc6。
模板片段:
{{#if pa.isPickList}}
{{view Ember.Select viewName="select" contentBinding="pa.options" selectionBinding="pa.selected"}}
{{else}}
{{input valueBinding="pa.selected"}}
{{/if}}
我担心我获取模型的异步性质可能会导致效率低下。也许绑定和异步事件交互效率低下。
Salesforce.com 是后端。根据我对 Promise 的了解,我想知道是否需要在 Promise 中获取服务器数据。我不知道该怎么做。
以下是我目前在我的路线中获取数据的方式:
App.IndexRoute = Ember.Route.extend({
model: function(params){
var otherController = this.controllerFor('selectedProducts');
var ar = Ember.A(); //create an array
var arg = '0067000000PNWrV';
Visualforce.remoting.Manager.invokeAction(
'{!$RemoteAction.ProductPricingLookupController.loadOpportunityProducts}',
arg,
function myHandler(result, event) {
console.info('got results!!! ' + result.length);
for(var i = 0; i < result.length; i++)
{
var p = result[i];
var sfProd = App.ProductResult.create({content: p});
ar.pushObject(sfProd);
}
},
{escape: false} //some of the names have ampersands!!
);
return ar;
}
}
在此先感谢您帮助新手学习 javascript 和 Ember 的方法。
更新 这里是这个问题的工作示例。我有 5 个选项列表,每个选项都有 60 个选项。这需要 2-3 秒才能在我的机器上渲染。我意识到这些数字相当大,但希望不是不合理的。增加选项列表元素或选项的数量,您可以轻松达到 5 秒。
此外,将我的 server-model-fetching 移至 promise 不会影响性能。
安德鲁