2

私はこのアプリケーションを持っています:私のアプリケーション

ユーザーが navBarItems の 1 つ (Microsoft OUTLOOK など) をクリックしたときに、マークされた領域を変更したいと考えています。私はいくつかの調査を行ってきましたが、多くの人が、いくつかのパネルを追加して、ユーザーが navBarItem をクリックしたときにそれらを表示/非表示にできると言いました。ただし、この領域には多くのグリッドビューとその他の多くのコントロールが含まれます。すべてのコントロールを同時に実行し続けるのは CPU とメモリに負担がかかるため、アプリケーションの起動時にそれらすべてを初期化するかどうかはわかりません。そして、この種の状況に対するエレガントな解決策だとは思いません。しかし、ユーザーが対応する navBarItem をクリックしたときにコントロールを初期化することを選択すると、ユーザーにとって遅延が発生します。

この状況に最適な設計アプローチは何ですか?

PS: 商用ライブラリも使用できます。

ありがとうございました。

4

1 に答える 1

0

必ずしも遅れている必要はありません。最初に画面を表示してからバックグラウンドでデータを入力すると、ユーザーにとってそれほど悪くないように見える場合があります。また、特定の画面が初期化されると、それをメモリに保持して、その後ユーザーがその画面に移動する回数が速くなるようにすることができます。

また、各コントロールにロードしているデータを確認してください。一部のデータは同じですか?一部のデータをバックグラウンドでプリロードして保持できますか?

ドロップダウンリストはたくさんありますか?その場合、パフォーマンスを向上させるために、ドロップダウンリストデータの一部を事前入力またはキャッシュできますか?

大部分の時間使用されるパネルが1つか2つありますか?その場合、これらのパネルをプリロードして、ユーザーが最も頻繁に移動するパネルのエクスペリエンスを向上させることができます。

データをロードするためのバックグラウンド処理はコードをより複雑にしますが、それはアプリから良好な応答時間を得るための最良の方法になります。

これは、タスクを使用してUIからバックグラウンドスレッドを実行する例です

そしてもう1つはBackgroundWorkerを使用しています。

于 2012-12-07T16:56:12.200 に答える