1

<script>別のサイトのページからタグを介して参照されているページがあります。スクリプト src では、スクリプトで作成するフォーム (db テーブルから) と、動的に作成されたフォームが配置される div を渡します。呼び出しページは次のようになります。

<div id="FormContainer"></div>
<script type="text/JavaScript" src="http://www.example.com/GenerateForm.aspx?FormId=1&div=FormContainer"></script>

GenerateForm.aspx には、FormId の QueryString パラメータと Div Id を読み取り、フォームを構築する JavaScript を出力するコードが含まれています。

私の質問はこれです。JavaScriptを「出力」するためのさまざまな方法は何ですか? 一部の JavaScript は静的で、外部の .js ファイルにパッケージ化できます。jQuery もあります。しかし、GenerateForm.aspx マークアップ ページにそれを追加する必要がありますか? または、ScriptManager を使用する必要がありますか?

動的に構築された JavaScript はどうですか? 現在Response.Write()、概念実証のために使用しているだけですが、代わりに何か他のことをする必要がありますか? ページ上のコントロールを使用してLiteral、その値を設定しますか? ScriptManager を使用しますか? 他の何か?

これは冗長な質問であることは承知していますので、よろしくお願いします。

4

1 に答える 1

1

別の参照 Javascript ファイルを使用する場合は、おそらく ashx ファイルを使用することをお勧めします。基本的に、これは、ASP.NET ページのライフサイクルを処理する必要なく、出力ストリームに直接書き込むために使用する単なる汎用ハンドラーです。[新しい項目の追加] ダイアログからサイトに基本的な汎用ハンドラー (.ashx) を追加する場合、テンプレートはcontext.Response.Write()、Javascript を動的に出力するために使用するのに十分な方向である必要があります。

イベントが発生した後など、特定の時間に実行する Javascript の個々の行を出力する場合は、ScriptManager がより便利です。ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true);次に、たとえば、ボタンがクリックされた後にクライアント アラート ボックスを表示することができます。

静的ファイルは、静的に処理する必要があります。サーバーはキャッシュを処理でき、script タグから直接静的スクリプト ファイルを参照する場合、不要な処理は発生しません。ただし、静的スクリプトを動的にロードする必要がある場合は、たとえば <script> タグを内部に持つリテラルを作成できます。このようにして、ブラウザのキャッシュ バージョンの静的ファイルが使用されます。

于 2009-09-11T15:51:26.770 に答える