권장 : ASP에서 SQL Server보기 및 저장 프로 시저를 호출 1. 서문 ASP (Active Server Pages)는 서버 측 스크립팅 환경으로 Microsoft의 IIS3.0 이상에서 지원됩니다. 동적 웹 페이지를 만들거나 강력한 웹 애플리케이션을 생성하는 데 사용할 수 있습니다. ASP 페이지는 HTML 태그, 텍스트 및 스크립트 명령이 포함 된 파일입니다. ASP 페이지는 ActiveX 구성 요소를 호출하여 숫자에 연결하는 것과 같은 작업을 수행 할 수 있습니다.
ASP 프로그래밍 세션 기술. 세션 객체는 사용하기 쉽습니다. 안전하고 편리한 사용자 소유의 데이터 변수를 기록하는 데 사용할 수 있습니다. 그러나 세션이 어떻게 작동하는지 정말 알고 있습니까? 아마도 당신이 이해 한 후에, 당신은이 사랑의 증오 대상을 다시 사용하지 않을 것입니다. 대안으로 바꾸는 방법은 약간 번거롭지 만 장기 고려 후에는 그렇게해야합니다.
먼저, 고객이 개인적으로 소유 한 데이터 변수를 기록하는 데 사용할 수 있으며 시간 범위 내에서 사라지지 않을 수있는 세션의 이점에 대해 이야기 해 봅시다. 이것은 실제로 중요한 기능, 특히 구성원과 시스템에서 사용해야하는 기능입니다. 예를 들어, 쇼핑 시스템과 같이이 레코드에 기록 된 회원의 로그인 계정, 시간, 상태 및 많은 실시간 데이터는 사용자의 쇼핑 바구니에 제품을 기록합니다. 이 정보는 각 사용자가 개인적으로 필요하며 개발자는 일반적으로 세션 레코드를 사용하여 처리합니다.
그러나 ASP의 세션은 쿠키로 구성되며 서버는 세션에 기록 된 모든 정보를 쿠키 형태로 사용자의 브라우저로 전송합니다. 일반적으로 브라우저는 이러한 쿠키를 저장합니다. 사용자가 링크를 클릭하고 서버에 다시 연결할 때마다 브라우저는 이러한 쿠키를 다시 서버로 전달하여 처리합니다. 이것은 세션의 운영 원칙입니다. 데이터의 양이 클 경우 전송 및 수집해야합니다. 서버는 온라인 처리 및 메모리 재구성과 같은 초기 작업에 더 많은 리소스를 소비해야하기 때문에 라인의 대역폭을 소비 할뿐만 아니라 성능을 줄입니다. 이제 "이 기능을 사용해야하므로 조금 희생해야합니다." 그러나이 기사는 세션에 대해 이야기합니다. 한편으로, 그것은 당신이 덜 사용하도록 가르쳐줍니다. 반면에 물론 대안이 있습니다. 그런 다음 무대에 오는 사람은 Global.asa에 속하는 응용 프로그램 객체입니다.
응용 프로그램은 또한 임시 데이터를 기록하고 처리하는 데 능숙합니다. 모든 측면에서의 능력과 사용량은 세션과 동일하지만, 그 데이터는 공개적으로 공개됩니다. 즉, 사용자가 공유 할 수있는 가변 공간입니다. 응용 프로그램은 세션과 다릅니다. 이는 데이터를 사용자에게 전달하지 않고 다음에 온라인으로 읽을 때까지 기다립니다. 서버의 메모리에 직접 기록되며 성능은 세션보다 훨씬 빠릅니다.
응용 프로그램 객체가 공개되므로 가장 먼저 수행해야 할 일은 각 사용자의 공통 영역을 계획하여 각 사용자가 시뮬레이션 된 세션의 목적을 달성하기 위해 데이터를 기록 할 수있는 자신의 영역을 갖도록하는 것입니다. 지금하는 방법에는 두 가지가 있습니다.
1. 서버가 활성화되면 미리 사용자 메모리 공간을 초기화하고 할당하십시오. 일반적 으로이 접근법은 서버가 켜지 자마자 많은 리소스를 차지하지만 사용자가 온라인 상태 일 때마다 할당하는 데 어려움을 겪습니다. 그러나 제한이 있습니다. 이 방법을 사용하면 최대 인원 수를 제한해야합니다. 활성화하자마자 초기화되므로 일정량의 메모리 공간의 설정 만 추정 할 수 있으므로이 방법은 일반적으로 채팅방과 같은 작은 프로그램에서 사용됩니다.
2.이 방법은 대규모 응용 프로그램에 더 적합한 것으로 간주되어야합니다. 동적 할당 방법을 채택합니다. 사용자가 처음으로 서버로 온라인으로 오면 리소스 가이 사용자에게 할당됩니다. 이 두 시뮬레이션 세션 솔루션의 목적은 세션 리소스의 소비를 줄이는 것이지만 결국에는 대체 할 수 없습니다. 우리는 여전히 작은 세션을 사용해야하며, 최소한 서버의 많은 부담을 줄일 수 있습니다.
첫 번째 계획
먼저 첫 번째 솔루션의 구현을 시작합니다. 활성화 될 때 애플리케이션을 초기화하기 때문에 물론 Global.asa에서 시작해야합니다.
초기화가 완료되었지만 사용 방법은 무엇입니까? 계정 및 로그인 시간과 같은 세션에 저장된 정보를 사용자가 로그인하는 응용 프로그램 객체로 변경하면됩니다.
'사용하지 않은 공간을 찾고 있습니다
i = 1에서 응용 프로그램 (ClientMax)
Application (user_status_ & i) = 0 인 경우
'사용자 임시 번호
세션 (인덱스) = i
'잠금
응용 프로그램 응용 프로그램 .Lock
'중고 상태로 설정하십시오
응용 프로그램 (user_status_ & i) = 1 '가변 데이터에 넣습니다
응용 프로그램 (user_account_ & i) = 계정
응용 프로그램 (user_logtime_ & i) = now ()
'잠금 해제
application.unlock
종료
끝 If
다음
사용자의 관련 변수 데이터를 얻으려면 다음과 같습니다.
response.write (응용 프로그램 (user_account_ & session (색인))
세션을 사용하지 않는 것이 아니라는 것을 알 수 있습니까? 그렇다면 왜 세션이 위의 원본 코드에 존재합니까? 앞에서 언급 했듯이이 대안은 세션을 완전히 대체 할 수 없습니다. 브라우저가 항상 서버와 온라인 상태가 아닙니다. 페이지를 읽은 후에 연결이 끊어집니다. 그렇다면 다음에 같은 사람이 온라인 상태인지 어떻게 알 수 있습니까? 현재 세션에 의존해야합니다. 우리는 사용자에게 실시간 번호 세트를 제공합니다. 이 번호는 응용 프로그램의 가변 공간에있는 사용자의 수입니다. 은행에 많은 금고가 있다고 상상할 수 있습니다. 키가 있고 키에는 숫자가 있습니다. 키의 숫자를 사용하면 운영자가 자신의 금고로 안내 할 수 있습니다. 이 방법에는 약간의 개선이 있지만 소규모 응용 프로그램에는 충분합니다.
두 번째 계획
이전 솔루션과 관련하여 사용자 정의 번호가 세션을 사용하여 녹음한다고 생각할 수도 있습니다. 번호 매기기에 대해 말하면, 세션 객체는 "sessionID"메소드를 제공합니다. 맞습니다. 사용하든 아니든 서버는 각 사용자가 자동으로 숫자를 할당하는 데 도움이 되며이 숫자는 반복되지 않습니다. 이 숫자는 Session.SessionID로 얻습니다. 이 번호 매기기는 세션이 확실히 할 행동이므로, 우리는 우리가 스스로 작성하는 번호 프로그램을 대체하는 데 사용하여 다른 노력을 절약하고 확장을 더합니다. 그러나 기본적으로 위의 첫 번째 솔루션은 여전히 유용합니다. 예를 들어 사람 수 및 기타 소규모 응용 프로그램을 제한하는 대화방과 같이 유용합니다. 다음 두 번째 대안은 더 큰 시스템을위한 것입니다.
웹 사이트에 매 초마다 수백, 수천 또는 심지어 수만 명이있는 웹 사이트가 있다면 이전 솔루션을 사용하는 경우 확실히 작동하지 않습니다. 서버가 활성화되면 10,000 명을 준비하기 위해 10,000 개의 영역을 잘라내는 데 도움이 될 것입니다. 지역에 5 개의 변수가있는 경우, 하나의 변수가 32 바이트 (바이트)를 차지하고 10,000 명이 320,000 K (320MB) 이상을 차지하며 서버가 활성화되면 메모리에 너무 많은 쓰레기를 넣을 것이며, 성능은 필연적으로 전장으로 이동하기 전에 필연적으로 줄어 듭니다. 그리고이 숫자는 거의 없지만 512MB가 충분할 것이라고 생각하며, 위의 숫자는 최소 숫자라고 가정하며, 메모리를 구성 할 때 서버가 사용할 자원의 수는 알려져 있지 않으므로 더 낮고 낮지 않습니다. 따라서 솔루션은 사용자 변수 공간을 동적으로 구성하고 사용자가 서버와 함께 온라인 상태 일 때 영역을 자르므로 사전에 거대한 메모리를 구성 할 필요가 없습니다.
두 번째 솔루션은 비교적 간단합니다. 첫 번째 솔루션에서 모든 것을 버리십시오. Global.asa로 이동할 필요가 없습니다. 사용자 로그인 및 기타 유용한 장소 만 변경하면됩니다.
'잠금 applicationApplication.lock'가변 데이터를 넣으십시오
응용 프로그램 (user_account_ & session.sessionid) = 계정
응용 프로그램 (user_logtime_ & session.sessionId) = now () '잠금 해제 application.unlock
사용자의 관련 변수 데이터를 얻으려면 다음과 같습니다.
response.write (응용 프로그램 (user_account_ & session.sessionid))
과거에는 세션이 자원을 먹기가 매우 어렵다고 말한 많은 책을 읽었으므로 사용하지 마십시오. 그러나 그 일이있을 때는 여전히 사용해야하며 책은 더 적절한 해결책을 가르치지 않았습니다.
이제 세션을 교체하는 방법을 이해하면 ASP 프로그래밍 세션 기술을 잘 사용하십시오! 아마도 항상 어려움을 겪고있는 효율성 문제는 많이 향상 될 수 있습니다!
공유 : ASP 서브 루틴에 대한 간단한 소개 ASP에서는 vbscript 및 기타 방법을 통해 서브 루틴을 호출 할 수 있습니다. 예 : VBScript HTML HEAD %SUB VBPROC (NUM1, NUM2) 응답을 사용하여 서브 루틴을 호출하십시오 .Write (NUM1*NUM2) END SUB % /HEAD BODY P : /PPRESULT : L VBPROC (3,4) % /PP 또는 : /: /와 같이 : /PPRESULT를 호출 할 수 있습니다.