2014-09-24 3 views
0

폼을 통해 이전 페이지의 데이터를받는 ASP 페이지가 있습니다.ASP - SendEmail 함수가 실행될 때까지 페이지가로드되지 않습니다.

ASP 페이지는 :

  1. 는 데이터베이스
  2. 업데이트 데이터베이스
  3. 로드 HTML이 양식은 확인을 보냅니다
  4. 이메일 루틴을 제출되었습니다 말을 연결합니다.

그러나 이메일 루틴이 실행될 때까지 페이지가로드되지 않습니다. 마지막 루틴 일지라도 페이지가로드됩니다. 하위에있는 페이지의 하단에

호출 "SendEmail"루틴은,의 HTML이

</html> 

<% 

Call SendEmail 

Sub SendEmail 

End Sub 
%> 

어떤 도움이 많이 이해할 수있을 것이다로드 직후라고합니다.

건배

+0

물론 ASP는 서버 측이므로 모든 코드가 클라이언트에 응답을 보내기 전에 서버에서 실행됩니다. – Paul

답변

-1
</html> 

<% 
Response.Flush 'sends buffered HTML output immediately. 
Call SendEmail 

Sub SendEmail 

End Sub 
%> 
+2

코드를 약간 설명하면 좋을 것입니다. –

+0

이제는 단순 버퍼/플러시 루틴이 작동하지 않기 때문에 코드보다 서버와 더 관련이 있다고 생각합니다. –

+0

버퍼 플러시는이 문제를 전혀 해결하지 못합니다. 이는 페이지의 기대치와 모두 관련이 있습니다 실행합니다. – Paul

0

클래식 ASP, 등등 ASP.NET, PHP와 같은 모든 서버 측 언어입니다. 이는 페이지를 채우는 스크립트가 응답이 클라이언트에 전송되기 전에 실행된다는 것을 의미합니다. 예를 들어 : 같은 것을 반환하기 전에 서버 측에서 실행됩니다

<html> 
    <head></head> 
    <body> 
     <div><h1>This is a test</h1><p>Some random Lorem Ipsum in a box.</p></div> 
     <%Response.Write("This is also a test<br/>")%> 
     <p>Some other gobbledegook.</p> 
     <%Response.Write("37 + 59 = " & (37+59))%> 
     <%SendMail("Whatever message.")%> 
    </body> 
</html> 
<%Response.Write("Something else here.")%> 

이 모든 코드 :

이 상자에 테스트

일부 임의 로렘 입숨에게 있습니다.

이것은 또한 테스트

다른 어떤 맞지 않는 철자이다. + 59 = 96

37 (센드 여기 실행할 것) ... 다른 여기 무언가. 이 섹션이 한마음으로 실행하려면

당신은 (기침) iframe의 (GAH의 선택을 사용하여 선택적으로 자바 스크립트, jQuery를 또는 다른 유사한 자바 스크립트 기반의 플러그인을 호출, 또는 고려해야 할 것이다! 불쾌한 !).