0

私は長くて動的なフォーム (100 ほどのフィールド) に取り組んでおり、各フィールドに CalendarBehaviors、HovermenuBehavior などのツールキット アイテムを使用しています。

これほど多くのツールキット アイテムを一度に操作したことはなく、レンダリングで大きなパフォーマンス ヒットが見られます。ツールキット コントロールのすべてのインスタンスは、独自の<SCRIPT></SCRIPT>タグでクライアントに送信されます。つまり、彼がフォローしている 200 のインスタンス:

<SCRIPT type="text/javascript"> 
Sys.Application.add_init(function() {    $create(AjaxControlToolkit.HoverMenuBehavior, {"OffsetX":20,"PopDelay":50,"dynamicServicePath":"/default.aspx","id":"hmePopupHelpPolicyNumber","popupElement":$get("lblHelpPolicyNumber")}, null, null, $get("imgHelpPolicyNumber"));});
</SCRIPT>
<SCRIPT type="text/javascript"> 
...snip
</SCRIPT>

これを制御し、すべてのコントロールを 1 つのスクリプト ブロックで作成する方法はありますか?

また、IE 7 がどのように html と javascript を解析してレンダリングするかを説明している優れた詳細な記事を知っている人はいますか?

そして、ほとんどの人が代わりに JQuery を推奨することを私は知っています。残念ながら、それはこのプロジェクトのオプションではありません。

事前に感謝し、コーディングをお楽しみください。

4

2 に答える 2

1

ページのデザインを考え直してください。ページにこれほど多くの項目があると、ユーザー エクスペリエンスが向上しません。非常に遠いソリューションをコーディングする代わりに、設計を再考してください。最終的にはユーザーにも利益をもたらすでしょう。

編集: あなたの質問は、多くの人が WebForms を使用することの主な欠点と考えているものの中心にあります。サーバーがコントロールをどのようにレンダリングし、その HTML を出力するかについては、ほとんど制御できません。あなたが避けようとしているより「高度な」アプローチがなければ、フォームを小さな断片に分割する以外に何かを提案するのは難しいでしょう. データ入力フォームの場合、ユーザーは、マウス クリックでフォームにデータを入力するよりも、日付フィールドに入力する方が速い場合があります。

于 2009-11-17T17:00:01.533 に答える
0

@Achillesの回答に沿って、フォームを複数のページに分割します。複数のタブで 1 つのページを試すこともできます。

更新: ToolkitScriptManager も役立つかもしれません。すべての外部ツールキット スクリプトを 1 つの外部スクリプトに結合します。また、すべてのインライン ツールキット スクリプトを 1 つのブロックにまとめていると思います。

于 2009-11-17T17:02:13.327 に答える