1

したがって、次のように Page_Load イベントにいくつかの JavaScript を手動で含めるマスター ページがあります。

Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));

$(document).ready() をスクリプトの先頭に配置しました。これは、それが含まれているときに適切にバインドされることを期待しており、実際にバインドされています。

問題は、ポストバック時に $(document).ready() を起動しないことです (AJAX は関係ありません)。私が使用した解決策は、それを init 関数にラップし、マスター ページの .aspx ファイルを介してその init 関数を呼び出すことでした。それは機能し、それほど汚れていませんが、私は混乱しています。

ブラウザがファイルをキャッシュすることは理解していますが、リクエストごとに実行されると予想していましたが、そうではないようです。

誰かが理由を説明できますか、または私が見ていると思うものが見えない場合は、それも説明できますか?

Chrome ブラウザーでこの動作が見られます。

4

2 に答える 2

0

マスターページに、独自の JavaScript ファイルを含める前に JQuery を含めていますか?

この状況は通常、JQuery のロードがプロセスで遅すぎる場合に発生します。

于 2012-08-28T15:45:35.983 に答える
0

これらの次の行をどこに登録していましたか?

Page.ClientScript.RegisterClientScriptInclude("site.master", ResolveUrl("~/Scripts/site.master.js"));

現在のリクエストがポストバックでない場合にのみ、条件付きで登録しますか? それはばかげているでしょう。ページ全体を配信する必要があるたびに登録する必要があります。

于 2012-08-28T15:51:24.173 に答える