ASP 프로그램을 작성할 때 ASP 프로그램의 효율성을 향상시키고 데이터베이스의 연결 및 쿼리를 줄이기 위해 캐싱 기술은 일반적으로 데이터베이스에서 읽어야하는 일부 데이터를 캐시하는 데 사용됩니다. 다음으로, 잘못된 새로운 기술 채널이 당신을 살펴볼 것입니다!
예:
프로그램 코드 :
코드 사본은 다음과 같습니다.Dim Rs, Arr
Rs. Open Conn, SQL, 1,1
arr = rs.getrows ()
application.lock ()
응용 프로그램 ( "캐시") = ARR
Applicatoin.unlock ()
vbscript에서는 어레이는 응용 프로그램 객체에 저장 될 수 있지만 ASP 언어가 JScript로 선택되면 약간 나쁩니다. 응용 프로그램을 사용하여 배열을 저장하면 다음 오류가 발생합니다.
인용하다:
응용 프로그램 개체, ASP 0197 (0x80004005)
허용되지 않은 객체 사용
애플리케이션 모델 행동에 아파트 모델 동작이있는 객체를 추가 할 수 없습니다.
특정 이유는 Microsoft의 지식 기반에서 다음과 같이 찾을 수 있습니다.
인용하다:
JScript 어레이는 "아파트"컴포넌트로 간주됩니다. FTM (Free Threaded Marshaler)을 집계하는 구성 요소 객체 모델 (COM) 구성 요소 만 인터넷 정보 서버 (IIS) 5.0 ASP 페이지 내에서 응용 프로그램 범위에 할당 할 수 있습니다. "아파트"구성 요소는 FTM을 집계 할 수 없기 때문에 ( "FTM"객체와 달리 직접 포인터를 클라이언트에게 전달할 수 없음) JScript 어레이는 FTM을 집계하지 않습니다. 따라서 JScript 배열은 ASP 페이지에서 응용 프로그램 범위에 할당 할 수 없습니다.
위의 설명은 다음에서 인용됩니다 : PRB : 오류 IIS 5.0에 응용 프로그램 범위에 jscript 배열을 저장할 때.
따라서이 문제를 해결하기 위해 Google에서 주요 회의를 검색하고 마침내 "응용 프로그램 개체 및 정적 관점에 대한 캐시에 대한 몇 가지 결론"을 찾았습니다. 이 문제를 해결하려면이 방법은 Application.StaticObject를 사용하여 스크립팅 .dictionary 객체를 저장 한 다음 Scripting.Dictionary Object를 사용하여 캐싱 해야하는 데이터를 저장하는 것입니다.
이를 바탕으로 작동 캐시 클래스는 Put, Get, Remove 및 Clear 메소드를 구현하도록 작성됩니다. 사용하기 전에 Global.asa에 객체를 추가해야합니다.
프로그램 코드 :
<object id = "xbscache"runat = "server"scope = "application"program = "scripting.dictionary"> </object>
클래스의 구현은 다음과 같습니다.
코드 사본은 다음과 같습니다.<script language = "jscript"runat = "server">
/**
제목 : 캐시 운영 클래스
설명 : 운영 체제 캐시
@Copyright : 저작권 (C) 2007
@Author : Xujiwei
@website : http://www.xujiwei.cn/
@version : 1.0
@Time : 2007-06-29 12:03:45
**/
var xbscache = {
get : function (key) {
return application.staticobjects ( "xbscache"). 항목 ( "캐시."+키);
},
put : 함수 (키, 데이터) {
application.lock ();
Application.staticObjects ( "XBSCACHE"). 항목 ( "캐시."+키) = 데이터;
application.unlock ();
},
제거 : 함수 (키) {
application.lock ();
Application.staticObjects ( "XBSCACHE"). 제거 ( "캐시."+키);
application.unlock ();
},
Clear : function () {
application.lock ();
Application.staticObjects ( "xbscache"). removeall ();
application.unlock ();
}
}
</스크립트>
이러한 방식으로 ASP에서 jscript를 사용할 때 캐시 구현이 완료됩니다. Error New Technology Channel의 편집자가 편집 한 컨텐츠가 도움을 제공 할 수 있기를 바랍니다.