1. ASP 캐시 란 무엇입니까/왜 캐시
실제로 ASP 기술의 초기 단계에서 웹 사이트가 설립되면 ASP 동적 웹 기술이 가져 오는 편의성과 무료 수정 및 무료 HTTP 제어가 느껴질 수 있습니다. 그러나 액세스 볼륨이 증가하면 사이트 액세스 속도가 느려지고 느리게되고 IIS가 다시 시작되었음을 알 수 있습니다. 따라서 더 나은 성능으로 데이터베이스 변경, 인덱스 설정, 스토리지 절차 작성 등과 같은 ASP 프로그램을 최적화해야합니다. 이러한 조치 중 일부는 비용 압력을 증가시킬 필요는 없지만 일부 비용 압력 (예 : SQL에 대한 클러스터 액세스)은 반드시 그 효과가 아닙니다.
웹 액세스의 압력에 직면하여 가장 경제적 인 방법은 캐시 최적화 기술을 사용하여 웹의 서비스 압력을 완화하는 것입니다.
웹 액세스량 증가는 일반적으로 다음 자원 수요의 빠른 성장을 의미합니다.
1. 네트워크 카드 트래픽 증가는 더 많은 CPU 처리 네트워크 트래픽 및 네트워크 I/O 스레드를 소비해야합니다.
2. 데이터베이스 연결을 더 자주 열고 닫아야합니다 (데이터베이스 기술이 사용되는 경우 -일반적으로 ASP는 데이터베이스를 데이터 저장으로 사용합니다), 리소스를 심각하게 소비하는 것의 수 및 경쟁 자원으로 인한 교착 상태 트랜잭션은 네트워크 I/O 또는 CPU 소비를 증가시킵니다.
3. 세션이 사용되는 경우, IIS는 상태를 유지하기 위해 더 많은 메모리를 소비하며 메모리 소비는 물리적 메모리가 충분하지 않아 물리적 메모리와 보조 메모리 사이의 교환이 발생하여 코드 실행이 중지됩니다
4. 액세스의 적시 응답으로 인해 웹 페이지 액세스 실패가 발생하여 사용자가 새로 고침하여 CPU, 메모리 및 기타 리소스의 요구를 악화시킵니다.
실제로 일반적인 웹 응용 프로그램을 고려할 때 동적 코드 실행의 여러 번 불필요합니다.
2. ASP 캐시의 분류
승인없이 요약하면 ASP의 캐시는 두 가지 범주로 나눌 수 있습니다.
1. 파일 캐시
So -Called File Cache는 논리적 판단에 따라 특정 ASP의 특정 실행이 크게 변경되지 않습니다. 웹 리디렉션에서 기술로의 정적 파일에 액세스하여 데이터베이스 리소스를 줄이기위한 요구를 충족시킬 수 있습니다. 예를 들어, 많은 포럼이 스티커에 답장 할 때 정적 파일을 다시 말한 다음 donews.com 포럼과 같은 리디렉션이 있습니다. 정적 정적 측면에는 부작용 (혜택)이 있습니다. Google과 같은 검색 엔진에는 쉽게 포함 할 수 있습니다. 일부 보도 자료 시스템은이 기술을 채택했습니다.
2. 파일 필름 브레이크 캐시
SO -CALLED 파일 캐시는 또한 논리적 판단을 기반으로합니다 (일반적으로 리소스를 소비하기 위해 소비 해야하는 대규모 대용량 데이터베이스 쿼리)는 일정 기간 동안 변경되지 않으므로 저장할 수 있습니다. 파일 형태의 데이터는 데이터베이스의 부담을 증가시키지 않기 위해 파일을 읽음으로써 데이터를 얻을 수 있습니다. 예를 들어, 우리는 일반적으로 일부 데이터를 XML 형식으로 저장 한 다음 XSLT 기술을 사용하여 디스플레이를 구현합니다 (XML 처리는 일반적으로 많은 양의 CPU 리소스가 필요하므로 IE는 일반적으로 고객의 CPU에서 처리하기 위해 클라이언트에게 직접 XML을 읽습니다). 이것이 CSDN의 포럼이 처리되는 방식입니다.
3. 메인 메모리 캐시
또한 메모리에서 캐시를 다루는 것을 고려하고 메모리에 적시에 응답 해야하는 컨텐츠를 저장하면 즉시 빠르게 스토리지에서 전송하십시오. 많은 액세스 요구가 여러 개의 작은 페이지 또는 메인 스토리지에 집중되면 메인 메모리 캐시를 사용하여 웹 액세스 성능을 크게 향상 시키려고합니다.
3. 캐시를 달성/사용하는 방법
캐시를 구현하려면 다음과 같은 문제를 고려해야합니다.
1. 짧은 시간에 어떤 페이지가 변경되지 않습니까?
자신의 사이트를 분석하면 많은 페이지가 있습니다. 예를 들어, 사이트에는 일반적으로 뉴스 및 정보 열이 있습니다.이 열에는 일반적으로 사이트 유지 관리 직원의 특정 시간에 정보가 게시되며 페이지를 거의 변경하지 않습니다. 이 페이지는 정적 파일이있는 캐시에 적합합니다. 실제로, 소위 보도 자료 시스템이 완료되므로 원래 동적 ASP 페이지를 변환하기 위해 이러한 시스템의 아이디어를 참조 할 수도 있습니다.
2. 해당 페이지는 모든 방문에 대해 생성되어 동일한 논리를 생성합니다 (즉, 방문자를 구별하지는 않습니다).
뉴스 및 정보와 같은 열을 제외하고 모든 방문자는 인터페이스를보고 포럼 및 기타 소비 자원과 같은 리소스의 적용은 일반적으로 통합 논리 생성으로 설계 될 수 있습니다 (동일한 게시물, Zhang Sanli 및 Sisi는 동일합니다. )) 정적 캐시로 구현할 수 있습니다. 또한 서버 처리 용량, 즉 처리를위한 클라이언트 브라우저 외에도 데이터를 중단하고 스크립트 기술을 사용하는 것을 고려할 수 있습니다.
3. 캐시의 비용과 수확을 사용하십시오.
주로 공간 변경 시간 (응답). 캐시 기술을 사용하여 웹 서버의 응답 능력을 향상시키기 위해 자주 필요한 컨텐츠를 사전 처리하고 더 중요한 것은 방문자의 호의를 얻습니다.
가격은 웹 공간에 대한 수요가 증가하고 액세스 효과에 영향을 줄 수 있다는 것입니다.
그러나 나는 적절한 캐시가 단점보다 크다고 생각합니다.
4. 해당 장소에서 캐시를 사용하는 대신
동적 쿼리 페이지, 각 사람의 쿼리 컨텐츠는 다르므로 디스플레이 결과는 동일하지 않으므로 쿼리 결과 캐시를 생성 할 가능성이 없으므로 캐시가 더 복잡하고 캐시 사용률의 맨 아래에 있습니다. 관리 비용 1 1 쿼리 키워드. 그러면 이러한 키워드 관리에 해당하는 서신도 번거 롭습니다).
넷째, 인스턴스 분석
제안 포럼의 원래 레이아웃이 다음과 같습니다.
루트 디렉토리에서 :
Default.asp 홈페이지, 일반적으로 본질, 권장 사항 등
Listborad.asp이 파일에는 모든 열의 이름과 소개가 표시되면 Plate 아래에 열을 나열합니다.
listthread.asp 파일은 모든 스티커를 나타내는 매개 변수를 가지고 있지 않으며 특정 조각의 모든 스티커를 나타내도록 메인을 가지고 다닙니다. Subbid가 특정 열의 게시물을 나타내도록 전달되는 경우. 주제의 페이지 매김을 표시하기 위해 페이지 매개 변수를 가지고있는 경우.
Viewthread.asp에는 특정 스티커 컨텐츠가 나열됩니다. 우리는 게시물이 연설로 표시되고 모든 스티커를 따르는 모든 스티커가 뒤에 나열되어 있다고 가정합니다. ID 매개 변수는 표시 될 게시물입니다.
respl.asp는 특정 게시물에 응답하고 매개 변수 ID를 가지고 특정 게시물에 응답합니다.
다른 토론은 없습니다.
위의 모든 ASP/PHP를 사용하여 모든 ASP 파일을 실행하려면 데이터베이스 작업, 빈번한 쿼리 및 여러 쿼리가 필요하다는 것을 알 수 있습니다. 쿼리 데이터베이스는 결국 성능 감소, 응답 속도 감소이며 방문자에게 느린 탐색 영향은 웹의 품질에 도움이되지 않는다는 것을 알아야합니다. 더 중요한 것은 A와 B의 두 사람의 경우 viewthread.asp를 방문했습니다. ID가 일관되면 여러 번 동일한 컨텐츠를 볼 수 있습니다 (브라우저에서 수신 한 HTML 코드는 거의 동일합니다). 이를 위해 동일한 컨텐츠에서 서버는 데이터베이스 연결을 열고 쿼리, 레코드를 읽고 레코드 및 데이터베이스 연결이 닫혀 있음을 표시해야합니다. 본질 본질 본질 더 많은 사람들이 더 많은 사람들에게 접근 할 경우, 최종 결과는이 사람들이 서버 리소스를 악화시킵니다. 실제로 동일한 콘텐츠에 대한 중복 노동은 캐시 기술로 최적화 될 수 있습니다. 예를 들어:
Repy.asp의 내용을 제출 한 후 정적 함수를 호출하여 viewthread_xxxx.htm과 같은 정적 html 파일에 정적 컨텐츠를 생성 한 다음 viewthread.asp를 방문하면 시스템이 자동으로 재생됩니다 해당 정적 파일 viewthreadxxxx.htm. 이런 식으로, 게시물이 최신이 아닌 경우, 그는 항상 새로운 제출이 있으면 정적 파일로 업데이트됩니다.
Listborad.asp는 정적을 구현할 수도 있습니다. 운반 할 수있는 매개 변수를 분석하고 캐시 파일 이름을 Listboard_xx.htm으로 설정하고 새 열을 추가 할 때 Listboard_xxx.htm을 업데이트 할 수 있습니다. ListThread.asp는 비슷하지만 더 많은 매개 변수로 인해 많은 캐시 파일이 있습니다. listthread.asp를 캐시하려면 subbid = xxx & page = 2를 보려면 해당 정적 파일이 listthread_xxx_p2.htm입니다. 기본값도 마찬가지입니다.
그렇다면 언제 업데이트 할시기를 판단 하는가? 몇시에 업데이트해야합니까?
讨论 listthread.asp? subbid = xxx & page = 2, 我们在执行 listthread.asp 俄时候提取 page, 然后探测 listthread_xxx_p2.htm 是否存在, 如果不存在就调用静态生成功能进行生成该文件 最终重定向到此정적 파일. 여기에 존재한다는 것은 새로운 컨텐츠의 출현으로 인해 업데이트해야한다는 것을 의미합니다.
파일은 어떻게 존재할 수 없습니까? 삭제. 새 스티커를 게시하고 스티커 삭제 및 움직이는 스티커를 게시 할 때 ListRestread_xxx_p2.htm과 같은 모든 정적 파일을 삭제할 수 있습니다. 이런 식으로 캐시에 알림이 표시됩니다.
정적 파일을 생성하는 방법은 여전히 남아있는 한 가지 문제가 여전히 남아 있습니까?
우리는 이전에 언급 한 것과 동일한 내용을 알았습니다.我们可以将改造前的 default.asp ault listthread.asp 等拷贝一个副本 等拷贝一个副本, 取名为 default_d.asp 、 listthread_2.asp, 且在同一个目录中 且在同一个目录中 (理论上 listthtrad.asp? subid = 123 同 listthread_d.asp? SubID = 123의 액세스 결과는 동일한 내용이됩니다.) 정적 파일을 생성 해야하는 논리에서 웹 액세스 요청에 의해 수정되기 전에 사본을 호출하고 HTML 코드를 얻고이를 정적 파일. 이 웹 요청은 실제로 실제 뷰어가 정적 콘텐츠에 액세스하기 전에 실제로 동일합니다. 서버 자체는 출력 될 HTML에 의해 검사 된 다음이 코드를 반환하여 파일 작동 기능을 정적 파일로 저장합니다. 이런 식으로 캐시 파일은 실제 뷰어 앞에 생성되었습니다.
이러한 체계는 거의 원래 레이아웃에 닿지 않으며 변환으로 인해 404와 같은 오류가 거의 발생하지 않습니다. 둘째, 정적 파일은 Google과 같은 검색 엔진에서 사이트를 쉽게 포함시킬 수 있도록 도와줍니다. 왜 안 돼?
마지막으로, 웹 액세스를 통해 ASP 프로그래밍 환경에서 많은 사람들이 XMLHTTP 구성 요소를 사용하여 액세스하여 많은 문제를 일으킬 것임을 상기시켜줍니다. XMLHTTP 자체가 요청을 캐시 하여이 구성 요소를 통해 요청에 의해 얻은 컨텐츠가 발생하여 논리적 혼란을 초래합니다. 따라서 웹 요청 리소스를 구현하려면 XML Server HTTP 객체 또는 WinHTTP 구성 요소를 선택해야합니다.
80 Post -Cicked Language : 캐시 기술을 달성하기위한 몇 가지 주요 사항이 있습니다.
여러 페이지에 적합한 서버 측 응용 프로그램은 종종 업데이트되지 않는 더 많은 요소가 있습니다.
HTML 정적 파일이 생성되며 템플릿 기술은 일반적으로 FSO 또는 AdoStream을 통해 정적 파일을 생성하는 데 사용됩니다.
다른
실제로 가장 중요한 것은 가능한 한 쿼리 데이터베이스의 수를 최소화하고 데이터베이스의 압력을 줄이기 위해 자신의 시스템의 요구에 따라 채택 할 기술을 결정하는 것입니다. .
또한 클라이언트의 캐시를 사용하여 효율성을 향상시킬 수 있는지 고려하고 있습니까?