Global.asa 파일은 선택적 파일입니다. 사용자는 지정된 이벤트 스크립트에서 세션 및 응용 프로그램 전체 객체를 선언 할 수 있습니다. 오늘날 Fooxin Technology Channel의 편집자는 관련 정보를 특별히 수집하고 정리했습니다. 관심있는 친구들은 다음 기사로 이동하여 자세한 내용을 배울 수 있습니다!
우리는 모두 .asa가 파일 접미사 이름이라는 것을 알고 있습니다. 활성 서버 응용 프로그램의 약어입니다.
실제로 프로그램 작성자가 이벤트 스크립트를 지정하고 세션 및 응용 프로그램 범위를 사용하여 개체를 선언 할 수있는 선택적 파일입니다. 이 파일의 내용은 사용자에게 표시하는 데 사용되지 않고 응용 프로그램에서 전 세계적으로 사용하는 이벤트 정보 및 객체를 저장하는 데 사용됩니다. 이 파일은 응용 프로그램의 루트 디렉토리에 저장해야합니다. 각 응용 프로그램에는 하나의 Global.asa 파일 만 가질 수 있습니다.
Global.ASA 파일에 대한 가장 일반적인 오해는 일반적인 사용 기능 및 서브 루틴을위한 라이브러리로 사용할 수 있다는 것입니다. Global.ASA 파일은 최종 응용 프로그램 객체 및 세션 객체뿐만 아니라 객체의 참조 및 캡처를 작성하는 데만 사용될 수 있습니다.
Global.asa 파일은 세션 수준 이벤트에 따라 액세스되며 다음 세 가지 경우에 호출됩니다.
Global.asa의 표준 파일 형식은 다음과 같습니다.
<script language = "vbscript"runat = "server"> sub application_onstart 'application_onstart run end sub session_onstart 고객이 Application's Session_onStart run sub session_onend 'session_onend'session_onend 'sect_onend run run sub가 </script run sub가 </script의 </script>에 액세스 할 때.
1. Session_ONSTART
먼저 사용자가 페이지를 입력하도록 제어하는 코드를 살펴 보겠습니다.
1. Global.asa (디버그 된 가상 디렉토리의 루트 디렉토리 아래에 배치)
<script language = "vbscript"runat = "server"> sub session_onstart '사용자가 처음 으로이 사이트에 로그인하는 한 홈페이지 응답으로 이동합니다. redirect (http://www.jb51.net) end sub </script>
그런 다음 현재 가상 디렉토리의 파일을 디버깅하면 모든 페이지가 http://www.webjx.com/ <로 이동하는 것을 알게됩니다.
"특정 페이지로의 강제 입력"이라는이 예를 통해 홈페이지를 따라야 할 때 매우 필요하다고 상상할 수 있습니다.
"온라인 사용자 수"의 예를 통해 Session_OnStart 및 Session_Onend 이벤트를 계속 관찰합시다.
2. Session_ONEND
2. global.asa (디버그 된 가상 디렉토리의 루트 디렉토리 아래에 배치)
<script language = vbscript runat = server> sub application_onstart의 초기 값은 0 응용 프로그램 ( "온라인") = 0 끝 서브 세션_onstart '사용자 액세스를 추가합니다. = 응용 프로그램 ( "온라인") -1 Application.unlock end sub </script>
3. online.asp
<%request.queryString ( "logout") = "true"그런 다음 session.abandon () response.end end if%if%> 현재 <%= application ( "온라인")%> 온라인 <a href = "online.asp? logout = true"> exit </a>
페이지에는 하나의 응용 프로그램 ( "온라인") 만 있다는 것을 알게되며 참조됩니다. 그렇다면 그 가치는 어디에서 왔습니까? 이것이 Global.asa 파일의 핵심입니다. 이 컴퓨터에서 Windows를 열고 Windows를 닫거나 두 가지 메소드의 디버깅을 종료 할 수 있습니다.
3. 계속 지정하십시오
"종료"연결 후 창을 닫는 효과는 창을 직접 닫는 것과 다르다는 것을 알게됩니다. 세션이 제 시간에 존재하기 때문에 창을 직접 닫을 때 Session_Onend 이벤트를 트리거 할 수 없으므로이 거의 불가능한 아이디어는 어떻게 실현 될 수 있습니까?
우리 모두 알다시피, 웹 페이지가 닫히면 OnUnload 이벤트가 동반 될 수 있습니다. 따라서 OnOnload를 실행할 수있는 한 필요한 전부가 아닌가? 말도 안되는 말을 덜 말하고 온라인으로 수정하십시오
<%If If If If Questring ( "logout") = "true"그런 다음 session.abandon () response.end end if%> <body onunload = javaScript : window.open ( "exit.asp")> 현재 <%= application ( "온라인")%> 온라인 <a href = "online.asp? logout = true"> exit </a>
online.asp가 onunload 일 때 exit.asp가 열립니다. 그런 다음 exit.asp에서 session.abandon ()을 설정하고 괜찮지 않습니다.
출구
<%session.abandon ()%> <cript> self.close () </script>
물론 세션이 로그 아웃 된 직후 스크립트 스크립트가 추가되었습니다. 이제 온라인 통계가있는 웹 응용 프로그램만으로도 충분합니다.
4. Global.asa에 대한 심층적 인 연구
위의 디버깅에서 한 예에서 배우고 다른 사람에게 적용하고 온라인으로 등록 된 사용자 수를 제어하는 방법은 무엇입니까? 다음 문서를 하나씩 읽어 보겠습니다.
4. global.asa (디버깅 된 가상 디렉토리의 루트 디렉토리 아래에 배치)
<script language = "vbscript"runat = "server"> sub application_onstart application ( "online") = 0 종료 서브 세션 _onstart 종료 하위 세션 _onend if session.contents ( "pass") 그런 다음 '로그인 한 사용자의 session_onend application.lock application.lock application.lock end.
이 Global.ASA의 Session_OnStart 블록은 어떤 이벤트도 유발하지 않습니다.
사용자가 서버에 액세스하면 사용자가 로그인하는지 여부에 관계없이 OnStart 이벤트가 생성됩니다. 이제 사용자의 온라인에 로그인하기 만하면 OnStart 이벤트에 1을 추가 할 수 없습니다.
또한 로그인 한 사용자 세션이 끝나는 지 여부에 관계없이 Onend 이벤트가 생성되기 때문에 (방문자가 서버를 방문하지만 로그인되지 않은 경우, 세션이 끝나면 Onend 이벤트가 생성됩니다) Session_Onend 이벤트에서 IF 문을 사용하여 로그인 한 사용자의 OnEnd 이벤트 여부를 결정합니다. 그렇다면 온라인 사람들의 수는 1만큼 줄어 듭니다.
Session.Contents ( "Pass")의 사용은 Onend 이벤트에서 세션 객체의 사용이 금지되기 때문에 세션 변수를 세션 객체 모음을 사용하여 호출 할 수 있다는 점에 주목할 가치가 있습니다. 다시 말해, 세션 ( "Pass")을 직접 쓸 수는 없지만 Session.Contents ( "Pass")를 작성해야합니다.
5. 로그인 .ASP
현재 등록 된 멤버 <%= 응용 프로그램 ( "온라인")%>.
<a href = "login.asp? logout = true"> exit </a> <%else%> <form action = "login.asp"method = "post"> <입력 유형 = "text"name = "name"> <br> <입력 유형 = "possport"name = "pwd"> <br> <input type = "value ="제출 "> <%end"
cnbruce의 이름과 암호가 Cnrose 일 때 세션 ( "Pass") = true가 생성되며 Global.asa에서 판단됩니다.
5. 당신의 상상력을 계속 사용하십시오
그것에 대해 생각하고 다시 생각하십시오. 온라인에 얼마나 많은 사람들이 있는지 계산하는 것만으로는 충분하지 않으며 사용자의 온라인 상태를 판단해야합니다.
기본 방법을 상상할 수 있습니다. 사용자가 로그인하면 온라인을 Login.asp에서 1로 설정하지만 (데이터베이스가있는 경우 업로드) 사용자가 오프라인 상태 인 경우 온라인을 0으로 설정하십시오. 개선하려면 Session_Onend 이벤트를 수정하고 이벤트에서 온라인을 0으로 설정해야합니다 (동일한 값이 업로드됩니다).
물론 Global.asa는 그 이상입니다. 그러나 우리는 지금 그것을 마스터하기 위해 서두르지 않아도됩니다. 데이터베이스와 접촉하면 데이터베이스를보고 파일을 계속 연구 할 것입니다. 나는 그때까지 우리는 분명히 많은 것을 깨달을 것이라고 믿는다. 위의 것을 먼저 이해해 봅시다.
이 기사를 통해 ASP의 Global.asa 파일의 사용을 간단히 분석하여 더 많은 도움을 줄 수 있기를 바랍니다. Wuxin Technology Channel Network에서 더 많은 기술 지식이 제공됩니다!