私は基本的な ASP.net Web サイトに取り組んでおり、ユーザーがページから離れようとしたときにサーバー側の機能を実行したいと考えています。このために、ウィンドウの onbeforeunload イベントを使用しています。ページにチェック ボックスがあり、ユーザーがこのチェック ボックスをオンにすると、sverside の「checkedchange イベント」が実行されます。問題は、ユーザーがこのチェック ボックスをクリックするたびに Web メソッドも呼び出されますが、ポストバックのみが発生するため呼び出されるべきではなく、ユーザーがページを離れないことです。ポストバックが発生したときに Web メソッドの呼び出しを避けるように提案できますか。次のシナリオでのみ Web メソッドを実行したいと思います。1) ユーザーがブラウザを閉じたとき。2) [一致を検索] ボタンをクリックすると、ユーザーが検索結果ページに学校がリストされていない状態で表示されたとき。3) ユーザーがブラウザのアドレスバーから URL を変更したとき
aspx ページのコード:
function GetMessage() {
var urlstring = document.URL;
{
PageMethods.Message( document.URL);
}
}
</script>
Code on aspx.cs page
[System.Web.Services.WebMethod]
public static void Message()
{
string x="a";
}