2011-07-20 6 views
0

ちょうど次の例を参照してください。extjsで複数のコントロールを使用する方法

​​

これは、クリーンなMVC構造を設定し、ページにグリッドを追加することを通して歩きます。私のウェブサイトでは、多くのextjs機能を使いたいと思っています。しかし、以下のことをいくらか明確にしたいと思います。

1)通常、1つのWebサイトには1つのapp.jsしかないか、機能ごとに新しいアプリケーションを作成します。だから私は1)連絡先の情報グリッド2)ニュースグリッド3)チャートが好きなら。 3つのアプリケーションを意味します。

これは私が現在(グリッドである)私のアプリケーションをロードする方法

index.htmlを

<html> 
<head> 
    <title>Account Manager</title> 

    <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" /> 
    <script type="text/javascript" src="extjs/ext-debug.js"></script> 
    <script type="text/javascript" src="app.js"></script> 
</head> 
<body></body> 
</html> 

app.js

Ext.application({ 
    name: 'AM', 
    appFolder: 'app', 
    controllers: [ 
      'Users' 
      ], 
    launch: function() { 
     Ext.create('Ext.container.Viewport', { 
      layout: 'fit', 
      items: [ 
       { 
        xtype: 'userlist', 
        title: 'Users', 
        html: 'List of users will go here' 
       } 
      ] 
     }); 
    } 
}); 
+0

これを解決しましたか?私も、1つのページに異なるコンポーネントまたは複数のコンポーネントを含む複数のページを持つWebアプリケーションを実装する作業を行っています。私は、あるコンポーネントが別のコンポーネントと干渉するようなモデルテーマで正しくレンダリングされるようにするために問題を抱えていました。最後に、私はこのプロジェクトを巨大にしている各コンポーネントのためにファイルに書きました。あなたは何をするためにあなたが解決したのかについてコメントすることができますか? – vbNewbie

答えて

1

@Frostyで、あなただけの1つのアプリケーションが必要ですウェブサイトごとのファイル。

グリッド、チャート、およびウェブサイトで使用するその他のコンポーネント用に別々のクラスを作成することをお勧めします。各クラスは個別のファイルに移動する必要があります。

したがって、Ext.createを使用してコンポーネントのインスタンスを作成すると、EXTJS4はそのjavascriptファイルを動的にロードします。これは、大規模なアプリケーションでのパフォーマンスの問題に役立ちます。ページロード時にすべてのファイルをダウンさせる必要がないからです。

+0

上記の例では、起動メソッドがビューポートを作成します。明らかに私はすべてのページにこのグリッドが欲しくない。では、jsファイルを分離するために起動を移動しますか? – frosty

+0

私の理解から、Ext.Applicationクラスは、主にシングルページアプリケーションに使用されています。つまり、ユーザーはページ(index.html)を閲覧して、サイトに費やしていた時間の間、そのページにとどまります。すべてのコンテンツとコンポーネントは、ExtJSを使用して動的にインポートされます。詳細については、http://docs.sencha.com/ext-js/4-0/#/api/Ext.app.Application –

+0

のドキュメントを参照してください。要約すると、ユーザーが同じページに滞在している場合、 Ext.Applicationファイルが1つだけ必要です。ユーザーが複数のページを閲覧している場合は、ExtJS4の実装方法をサイトで違う方法、つまりExt.Applicationを使用しないで見てください。 個人的に私はこの単一ページアーキテクチャを使ってアプリケーションやウェブサイトを構築したことがありません大規模なアプリではあまりにも制限的です。 –

関連する問題