これが発生する理由は、ページが解析されている間、常にサーバー側のタグを探して最初に実行するためです。サーバー側の制御を解析するのと同じです。したがって、コードを記述した場合でも、任意のボタンのクリックイベントで起動するために、コードはロードされるたびに実行されます。サーバータグのコードにコメントを付けようとしても、コードは実行されます。
関数Clear_(){
// '<%=Session["UID"]=""%>';// still this line executes
alert('ok');
} </script>
あなたの問題への答えはNOです。セッションはサーバー側として保存されますが、どのようにしてそれをクリアすることができますか?サーバーにAJAXリクエストを送信し、サーバー上のセッションをクリアする必要があります
更新2
これは、サーバー制御のためにaspxページが解析されるのと同じです。これらのサーバータグは、リクエストがサーバーにある間に処理され、値を評価する必要があります。たとえば、JavaScriptの値を、サーバー上のセッション値から入力する場合です。
//javascriptで
varmyValue= <%= Session ["SomeVal"]%>
したがって、ページが解析されると、サーバータグ内の値が評価され、実際の値に置き換えられます(制御の場合はhtmlに置き換えられます)。したがって、クライアントに送信される最終出力では、次のマークアップが送信されます
//javascriptで
varmyValue= 50;
ブラウザから「ソースの表示」を確認することで確認できます。