Response.Flush와 Response.Clear를 알고 있다면 이렇게 기다릴 필요가 없습니다. Html 페이지가 생성될 때마다 Response.write를 사용하여 데이터베이스 레코드가 Html을 생성했음을 나타내는 메시지를 즉시 반환합니다. 프로그래머가 ASP 페이지에서 생성된 정적 페이지 HTML을 작성할 때 동시에 많은 수의 페이지가 생성되면 브라우저 아래 진행률 표시줄에 3%, 6%, 10이 표시되면서 오랜 대기 프로세스가 발생했을 것입니다. % 등이 서서히 증가합니다. 이 대기 과정에서는 해당 페이지에 어떤 기록이 생성되었는지 알 수 없으므로 눈을 크게 뜨고 기다릴 수 밖에 없습니다.
Response.Flush와 Response.Clear를 알고 있다면 이렇게 기다릴 필요가 없습니다. Html 페이지가 생성될 때마다 Response.write를 사용하여 데이터베이스 레코드가 Html을 생성했음을 나타내는 메시지를 즉시 반환합니다.
이렇게 하면 동시에 많은 수의 페이지가 생성될 때 더 이상 혼자 빈 페이지를 보는 것이 아니라 브라우저 하단에 천천히 변화하는 진행률 표시줄만 있으면 어떤 데이터베이스 레코드가 생성되었는지 항상 알 수 있습니다. 충돌, 정전 등의 사고가 발생하더라도 다음 세대가 HTML을 생성하기 위해 기록되고 다시 시작되어야 하는 날짜를 알 수 있습니다. 멋지지 않나요? 이것은 진행률 표시줄이며 더 구체적입니다.
하하, 걱정하지 마세요. 먼저 Response.Flush와 Response.Clear의 의미를 살펴보겠습니다.
Response 개체의 Flush 메서드는 출력을 즉시 버퍼로 보냅니다. Response.Buffer가 TRUE로 설정되지 않은 경우 이 메서드는 런타임 오류를 발생시킵니다. 구문: Response.Flush; 참고: ASP 페이지에서 Flush 메서드가 호출되면 서버는 페이지의 연결 유지 요청에 응답합니다. 응답 객체에 적용됩니다.
Buffer에 대해 소개합니다. Buffer는 문자 그대로 영어에서 Buffer Zone으로 번역됩니다. 여기서는 명사일 뿐만 아니라 동사이기도 하기 때문에 buffer라고 부릅니다.
버퍼는 일련의 데이터가 저장되는 곳입니다. 클라이언트가 얻은 데이터는 프로그램의 실행 결과에서 직접 출력되거나 버퍼에서 출력될 수 있습니다. 하지만 이 두 가지 방법에는 속도의 차이가 있습니다. 웹에서 ASP 프로그램이 여러 번 요청되지 않으면 기본적으로 둘 사이에는 차이가 없습니다. 적어도 우리는 그것을 느낄 수 없습니다. 그러나 많은 사람들이 ASP 프로그램을 요청하면 속도가 다릅니다. 버퍼가 없으면 ASP 프로그램을 요청한 각 클라이언트가 얻은 결과는 ASP 프로그램을 한 번 실행한 결과입니다. ASP 프로그램이 미리 버퍼링되어 있으면 각 클라이언트가 얻은 결과가 버퍼링된 결과입니다. 영역의 결과는 프로그램을 한 번 실행한 결과가 아닙니다. 예를 들어, 1,000명의 사용자가 ASP 페이지에 동시에 액세스할 경우 ASP 프로그램이 버퍼링되지 않으면 프로그램이 1,000번 실행되어 서버의 로드가 증가하고 클라이언트가 페이지를 더 느리게 열게 됩니다. ASP 프로그램이 버퍼링되면 결과가 달라집니다. 각 클라이언트는 버퍼에서 직접 데이터를 얻으며 서버는 액세스 증가로 인해 프로그램 실행 횟수를 늘리지 않으므로 클라이언트가 페이지를 여는 속도가 느려집니다. 이전 경우보다 느립니다. 이것이 버퍼의 장점입니다.
Response.clear의 경우 Clear 메소드는 버퍼의 모든 HTML 출력을 삭제합니다. 그러나 Clear 메서드는 응답 본문만 삭제하고 응답 헤더는 삭제하지 않습니다. 이 방법을 사용하여 오류 조건을 처리할 수 있습니다. Response.Buffer가 TRUE로 설정되지 않은 경우 이 메서드는 런타임 오류를 발생시킵니다. 구문: Response.Clear는 응답 개체에 적용됩니다.
즉각적인 출력 효과를 얻으려면 루프 본문에서 원하는 출력 프롬프트 정보 뒤에 Response.Flush 및 Response.Clear를 추가하면 됩니다. 좋다:
<%
i=1 ~ 2000의 경우
i1=1 ~ 3000의 경우
''빈 루프, 각 실행 시간 연장
다음
Response.write i&)
응답.플러시
응답.지우기
다음
%>
위의 asp문을 실행하면 출력이 하나씩 출력되는 것을 한 번 실행하면 한 번씩 출력되는 것을 알 수 있습니다.
그런데 인터넷에서 누군가가 Response.Flush()를 사용해도 이전 정보가 클라이언트에 전송되어 표시되지 않는다는 말을 여러 번 본 적이 있습니다. 여전히 흰색 화면이 표시됩니다. 테스트를 반복한 후 플러시 콘텐츠는 최소 256바이트 이상이어야 한다는 결론에 도달했습니다. 즉, 컴파일을 통해 256바이트 이상의 데이터가 생성된 경우에만 Response.Flush()를 실행한 후 해당 정보를 클라이언트에 전송하고 표시할 수 있습니다.
위에서 제공한 명령문이 실제로 하나씩 표시하는 효과를 달성하고 미리 256바이트를 출력하지 않는다는 것이 이상합니다. 위 명령문을 메모장으로 저장하고 실행하면 효과가 한 줄씩 표시됩니다. 제가 기재한 의견은 플라이몬의 개인적인 의견일 뿐이며, 다른 목적으로 사용될 수 없습니다.
실제로 256바이트를 미리 출력해야 하는 경우 다음을 수행할 수 있습니다.
<%
희미한 리지
i=1 ~ 256의 경우
liji=liji&<!--먼저 256자를 생성합니다-WWW.PIAOYI.ORG-->
len(liji)>=256이면 종료합니다.
다음
%>
다른 견해나 다른 테스트 결과가 있는 경우 언제든지 저와 논의하시기 바랍니다.