2012-04-20 9 views
3

Sencha Touch 2(スピードワイズ)を使って作業するときの方が良いことを理解しようとしています。私はすでに、画面に表示されたコンポーネントをExt.createまたは{xtype:""}に初期化すると、実質的に違いがないことを理解しました。しかし、私どの程度であれば、私のようなコンテナにコントロールを追加する方法:その後、私はしたいアイテムが{html:"test", xtype:"panel"};で作成した1000枚のパネルのいずれかを含む配列であるかExt.create("Ext.Panel",{html:"test"});
とこれは私の他の結果をもたらすことSencha Touchオブジェクトを持つ配列を持つオブジェクトを持つ配列でコンテナのadd関数が高速になる理由

containerPanel = Ext.create('Ext.Container', { 
      id: 'appContgdfsainer', 
      fullscreen: true, 
      items: Ext.create('Ext.Button', { 
       text: 'Button', 
       listeners: {tap:function(){containerPanel.add(items)}} 
      }) 

     }); 

注意期待する。私が期待しているのは、Ext.create機能を使用してすでに作成されているコンポーネントをsenchaが追加するだけで済むので、Ext.createが高速になることです。 senchaは最初に追加する前にこのオブジェクトを作成しなければならないため、他の可能性は遅くなると思います。
問題のみですが、そうではありません。
{html:"test", xtype:"panel"};は、パネルを読み込んだ後、Ext.createを使用してパネルを追加する方がはるかに高速です。

質問:
どのコンテナにパネルを追加するとき{html:"test", xtype:"panel"};が速くExt.create

答えて

2

続いていることをどのようにfasterを決定している来ますか?

jsperf.comで簡単なテストを作成しました。Ext.createを使用する方が高速です。

リンク:http://jsperf.com/st2-xtype-vs-create

+0

通常、私が高速であるかを決定するためのタイマーと協力したいです。しかし、これは目がはっきりと見えていました。私はあなたのリンクをチェックし、これは明らかにExt.createの方が速いことを示しています。一方、私は単一のボタンでコンテナを作成しました。このボタンをタップすると、1000個のパネルがコンテナに追加されます。この場合、事前に作成されたパネルはオブジェクトフォームを追加するのに時間がかかります。あなたのテストは私を少し混乱させます。違いは、コンテナがレンダリングされた後にパネルを追加するということです。 –

+0

テストでパネルが追加され、すでにパネルが含まれているコンテナがレンダリングされます。これについてあなたの考えは何ですか? –

+0

私のテストでは 'containers' DOMがメモリにレンダリングされます(すべてのコンポーネントはSencha Touch 2でこのように動作します)。私が前のテストステートメントを変更してコンテナをビューポートに追加すると(実際には表示されますが、テストでは表示されません)、テスト結果は同じです。 ref:http://jsperf.com/st2-xtype-vs-create/2 – rdougan

関連する問題