2011-06-29 8 views
1

asp.netページに含めるjavascript変数がいくつかあります。これらはコードで構築されています。私はクライアント側のコードでこれらの変数を使用しています。ページまたはhttphandlerを使用してjavascript変数を出力する

私はより良いアプローチが不思議です。

A.変数のロジックを処理するhttphandlerを作成し、ハンドラがjavascriptを返します。ハンドラへの参照は、マスタページに含まれています。

B.マスタページコードビハインドは、変数のロジックを処理し、ページのマークアップに戻ります。

これらの変数はすべてのページで必要です。

パフォーマンスとベストプラクティスの観点から、どのアプローチが最適なのか疑問に思っています。

理由私は、ハンドラが好きなのは、マークアップ、合計の区切りにjavascriptが含まれていないということです。しかし、ハンドラの欠点は、追加のHTTPリクエストを意味し、ハンドラが処理されている間にページのレンダリングが遅くなることです。

意見ですか?

答えて

0

興味深い質問です。通常、私は基本的にあなたのオプションBであるカスタム名前空間(グローバルオブジェクト)に変数を出力しますが、私はカスタムhttpHandlerを作成することを考えたことがないという理由以外に特別な理由があるとは言えません!

0

私は、JavaScriptの生成は共通のモジュールで処理されると仮定しているため、どちらのオプションも適切かもしれません。

ハンドラへの追加の呼び出しが顕著なオーバーヘッドを引き起こすことはほとんどありません。私たちはデータベースからの画像を問題なく処理するためにこれらを使用します。

それは、よりエレガントなソリューションであるため、上記に基づいて、私は個人的にはもう少し複雑ではあるが、ハンドラを使用します。

0

ハンドラオプションはより洗練されているようですが、サーバ側またはクライアント側、または一部のプロキシでキャッシュされた問題が発生することがあります。私は単純なものと一緒に行くと言うでしょう。

0

HttpModuleを実行すると、javascriptを応答出力に直接書き込むことができます。この方法では、ハンドラまたはマスタページのマークアップへのリクエストがありません。

+0

これは非常に興味深いアプローチですが、これをどのように実現するかという例を得ることは可能でしょうか? – amateur

0

これらの変数を隠しフィールドmarket runat = serverに格納するjavascriptコードのブロックを持つことができます。あなたはそれから、ポストバックでサーバー側を取り上げることができます。

関連する問題