권장 : ASP 구성 요소가없는 업로드에 대한 간단한 분석 및 데이터베이스에 삽입 다음은 참조 된 내용입니다. %response.buffer = true server.scripttimeout = 9999999에 오류 이력서 다음 %>
ASP가 출시 된 지 7 년이 지났으며 ASP 기술은 상당히 성숙했습니다. Microsoft가 ASP.NET을 출시 한 이후 ASP 버전 업데이트를 점차 중지했습니다. 그러나 여전히 웹 사이트를 개발하기 위해 ASP를 사용하는 데 익숙한 사람들이 많기 때문에 ASP에서 캐시를 사용하는 방법을 설명하기 위해 간단한 예제를 사용합니다.
간단히 말해, 캐시 사용의 기본 원리는이 데이터에 직접 액세스 할 수 있도록 특정 기간 동안 자주 필요하고 비싼 데이터를 메모리에 저장하는 것입니다. 예를 들어, 일부 데이터는 데이터베이스의 여러 테이블에서 쿼리해야하며 거의 모든 페이지 에서이 데이터를 호출합니다.
이 경우 가장 좋은 구현은 데이터 의이 부분을 캐시하는 것입니다. ASP의 간단한 구현은이 데이터의 최종 표현식 형식 (예 : HTML 스트림)을 문자열에 캡슐화하고 ASP 내장 객체 응용 프로그램에 저장하는 것입니다 (이 기사에서는 주로 동적 캐시에 대해 설명하며 간단한 ASP 응용 프로그램이 생략됩니다). 이것의 장점은이 HTML이 웹 사이트 전체에서 전 세계적으로 호출 될 수 있고 응용 프로그램이 메모리에 있으므로 더 이상 데이터베이스를 쿼리 할 필요가 없으므로 응답 시간을 가속화하고 서버로드를 저장할 필요가 없습니다. 물론 이것은 메모리를 희생 시키며 시간 동안 공간을 교환하는 전형적인 예입니다.
이 방법을 사용하는 데는 많은 이점이 있지만 자주 변경되는 데이터 소스 (데이터베이스)를 만날 때이 방법은 더 이상 적용되지 않을 수 있습니다. ASP 애플리케이션 객체는 단점이 있기 때문에 데이터 소스의 변경으로 자동 변경하거나 새로 고침 간격을 제어 할 수 없기 때문입니다. 따라서 개발자는 동적 캐시를 구현하기 위해 프로그래밍해야합니다. 물론 프로그래밍시 데이터 소스 (데이터베이스)에서 모든 작업이 변경되면 한 번 Application을 업데이트 할 수 있습니다. 이는 데이터 소스 (데이터베이스)를 일관성있게 유지합니다. 이를 위해서는 프로그래밍에서 더 많은 문제를 고려해야하며 세부 사항을 쉽게 놓칠 수 있습니다. 따라서 특정 상황을 제외 하고이 방법을 권장하지 않습니다.
ASP의 가장 좋은 방법은 프로그래밍을 사용하여 캐시를 정기적으로 새로 고치는 것입니다. 이는 응용 프로그램에 저장된 만료 시간을 설정하는 것을 의미합니다. 물론, 응용 프로그램 객체는 ASP에 그러한 초기 속성이 없습니다. 프로그램을 사용하여 구현해야합니다.
| 다음은 인용 된 내용입니다. Default.asp <%@language = vbscript%> <%옵션 명시 적%> <%response.buffer = true%> <!-#포함 파일 = conn.asp-> <!-#include file = getCache.asp-> <html> <헤드> <title> ASP 캐시 데모 </title> <meta http-equiv = content-type content = text/html; charset = gb2312> </head> <body> <H4> 10 초마다 캐시를 새로 고침 : </h4> <% 응답. 플러시 gethtmlstream 응답. 쓰기 htmlstream %> </body> </html> |
| 다음은 인용 된 내용입니다. getcache.asp <% const cache_default_interval = 30 & apos; 30 초마다 캐시를 새로 고치십시오 희미한 htmlstream Dim isexpires isexpires = cacheexpires 기능 Cacheexpires Dim Strlastupdate DIM 결과 strlastupdate = application (lastupdate) if (strlastupdate =) 또는 (cache_default_interval <datediff (s, strlastupdate, now)) 결과 = true setlastupdateTime 또 다른 결과 = 거짓 끝 If cacheexpires = 결과 엔드 기능 하위 setlastupdateTime application.lock 응용 프로그램 (lastupdate) = cstr (now ()) application.unlock 종료 서브 서브 gethtmlstream 그렇다면 isexpires updatehtmlstream 끝 If htmlstream = application (cache_htmlstream) 종료 서브 |
| 다음은 인용 된 내용입니다. Sub UpdatehtmlStream 희미한 d d = fetchhtmlstream application.lock 응용 프로그램 (cache_htmlstream) = d application.unlock 종료 서브 함수 fetchhtmlstream dim rs, strsql, strhtml set rs = createobject (adodb.recordset) strsql = select categoryId, categoryName 카테고리에서 Rs. Open strsql, strconn, forforwardonly, adlockreadonly strhtml = strhtml & <select name = slt_search> while (rs.eof가 아님) strhtml = strhtml & <옵션> strhtml = strhtml & rs.fields (categoryName) strhtml = strhtml & </옵션> rs.movenext 향하게 하다 strhtml = strhtml & </select> Rs.Close RS = 아무것도 설정하지 않습니다 fetchhtmlstream = strhtml 엔드 기능 %> |
| 다음은 인용 된 내용입니다. conn.asp <!! <% Dim Strconn strconn = provider = sqloledb.1; 통합 보안 = sspi; 지속 보안 정보 = false; 초기 카탈로그 = Northwind %> |
공유 : ASP를 사용하여 액세스 데이터베이스의 GIF 이미지를 표시하는 방법 쓰기 : 1 : GIF 이미지 파일을 메모리로 읽습니다 (변수 strtemp). 2 : 데이터베이스에 쓰십시오. 다음은 인용 된 내용입니다 : Dim Bintmp () As As as as as adodb.conn