앞에 오는 이유! 왜, 어떻게 그들을 순서대로 만들지?나는 Response.Write를하기 전에 코드, 스레드 프로세스를 실행할 때 스레드가 Response.Write를
insertUser.ExecuteNonQuery()
con.Close()
Response.Write("Done successfully ...")
Thread.Sleep(4000)
Response.Redirect("Default.aspx")
앞에 오는 이유! 왜, 어떻게 그들을 순서대로 만들지?나는 Response.Write를하기 전에 코드, 스레드 프로세스를 실행할 때 스레드가 Response.Write를
insertUser.ExecuteNonQuery()
con.Close()
Response.Write("Done successfully ...")
Thread.Sleep(4000)
Response.Redirect("Default.aspx")
웹 응답은 WebRequest 클래스의 처리를 완료 한 후 페이지에 얻을 것이다 링크를 의뢰하십시오 코드에 plese을 클라이언트 측 기능을 사용하여 작업을 수행 할 수 있습니다 당신이 할 수있는 즉, 코드가 완료된 후 응답을 봅니다. 코드가 올바른 순서를 수행하고 있습니다. 다음과 같이 Response.End()를 사용하여 테스트 할 수 있습니다.
insertUser.ExecuteNonQuery()
con.Close()
Response.Write("Done successfully ...")
Response.End();
Thread.Sleep(4000)
Response.Redirect("Default.aspx")
응답은 웹 응용 프로그램에서 일회성 작업입니다. "조금만 대답하고, 다른 것을하고, 더 반응 할 수는 없습니다." 당신이 헤더 응답의을 수정 Response.Redirect()
같은 것을 고려할 때 이것은 특히 사실이다. (. 기본적으로 Response.Redirect()
전적으로 사용자가 보지 못할 것이다 있도록 응답에 추가 한 콘텐츠를 "소지품"합니다)
그것은 당신이 여기서 뭘 하려는지처럼 보이는 것은 :
이 작업을 수행하는 표준 몇 가지 방법이 있습니다. 1 단계를 포함하는 페이지로 응답하거나 클라이언트 측 코드에서 2 단계와 3 단계를 수행하거나 서버 측 코드에서 3 단계를 수행 할 수 있으며 두 번째 페이지에서 1 단계를 수행 할 수 있습니다. 몇 초 후 메시지가 표시됨).
<script type="text/javascript">
$(function() {
$('#dialog-message').dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog('close');
}
},
close: function() {
window.location.href='Default.aspx';
}
});
});
</script>
<div id="dialog-message">Done successfully ...</div>
: 예를 들어
,의 당신은 당신이 뭔가를 포함 할 수 있습니다 다음 페이지 A에서 페이지 B로 사용자를 보내, 몇 초 후에 페이지 A의 메시지를 표시하고 싶은 말은하자 jQuery를 사용하면, 어떤이가하는 것은 사용자에게 의도 된 메시지와 함께합니다 (jQuery UI Dialog 사용) 대화 상자를 표시하고, 사용자가 대화 상자를 닫을 때 다음 리디렉션을 수행한다.
응답 페이지가 완전히 실행시 이후에 올 것이다. 그리고 asp.net 웹 사이트는 무국적 ptotoc로 작동합니다 –
정확히 여기에서 무엇을하려고합니까? 이렇게하면 페이지에 쓰지 않고 4 초 동안 기다린 다음 리디렉션합니다. HTTP 응답은 그렇게 작동하지 않습니다. 사용자에게 메시지와 새 페이지를 표시하려는 경우 클라이언트 쪽 코드에서 대기/리디렉션을 수행하거나 두 번째 페이지에 메시지를 표시해야합니다. – David
클라이언트/서버가 구조적으로 상호 작용하는 방식에 대해 깊은 오해가 있습니다. 클라이언트 브라우저로 다시 전송되기 전에 코드가 IIS 서버에서 실행 중입니다. – asawyer