google.codes를 사용하여 내 css 및 js 파일을 빠르게 축소합니다. 나는 내 CSS와 js 파일에서 수축을 사용하기 위해 .htaccess를 설정했다. 그 이유는 코드에서 다른 js 파일을 참조하는 일부 js 파일 (shadowbox 및 tinymce와 같은)을 사용하기 때문이다. 그래서 내가 아파치와 함께 압축하고있어 또한 gzip으로 일부 js와 CSS 파일을 압축 - 내가 처음으로 gzipping (minify)하고 zlib (수축) 다시 통해 실행됩니다 오버 헤드를 만드는 오전. 또는 아파치는 헤더에서 minify로 설정된 속성을 갖는 이미 gzipped 파일을 무시합니다. 누구나이 경험이 있습니까?수축과 축소의 결합 - 오버 헤드가 발생합니까?
답변
축소 및 수축/gzipping은 잘 작동합니다.
mod 재 작성을 사용하여 모든 CSS/js 파일을 원래 버전과 .css.gz/.js.gz 버전으로 미리 빌드했습니다.
브라우저는 .js/.css 요청을 보내고 서버는 .js.gz/.css.gz의 존재 여부를 확인하고 특정 조건이 일치하면 gzipped 콘텐츠를 반환합니다.
그래서이
RewriteEngine On
RewriteBase/
#Check for browser's Accept-Encoding,
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith css or js
RewriteCond %{REQUEST_FILENAME} "\.(css|js)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .js.gz or .css.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.js\.gz$">
AddEncoding gzip .gz
ForceType "text/javascript"
</FilesMatch>
<FilesMatch "\.css\.gz$">
AddEncoding gzip .gz
ForceType "text/css"
</FilesMatch>
감사합니다! 거기에 훌륭한 스크립트가 있습니다! 하지만 도구 축소 (일반적으로 축소하지 않음) Google에서 실제로 압축 및 압축 파일을 보냅니다 및 다음 다시 서버 부분 (아파치 deflate 즉석에서) 할 것이라고 알고 있습니다. 그리고 그것을 두 번 할 때 나는 오버 헤드를 만들고 있는지 궁금해하고 있었다. ..? 미안해 내가 분명하지 않다면 ... –
이중 gzipping을 의미합니까? 나는 브라우저가 2 번 압축을 풀 필요성을 알지 못할 것이기 때문에 그렇게하지 않을 것이라고 생각한다. – YOU
gzip 같은,
기본적으로 (예를 들어 당신의 쉐도우 또는 TinyMCE에 대한) JS에서 즉시로드 JS/CSS 파일에 대한 문제가되지 않는다는 zlib 압축 알고리즘을 사용하여 , 대부분의 바이트 시퀀스는 두 번째로 잘 압축되지 않습니다.
오, 나는 gzip이 zlib 라이브러리를 사용하는지 몰랐다. 나는 그것이 gzip과 deflate의 차이라고 생각했다. gzip 라이브러리를 사용하고 zlib 라이브러리를 사용하여 압축을 푸십시오. 그러나 문제는 파일이 두 배로 압축 될 것인가? 훨씬 작아지지 않을 것이라고 확신하지만, 클라이언트는 먼저 서버에 대해 deflatet을 압축 해제 한 다음 축소 된 파일을 압축 해제해야합니다. 거기에 오버 헤드가 있어야합니다 ..? –
이미 작아지지 않을 것이라는 것을 이미 알고 있다면 왜 그럴까요? :) –
Minify은 Apache를 통해 파일을 제공하지 않으므로 이중 인코딩이 필요하지 않습니다.
DEFLATE 필터를 사용하면 Apache는 매번 요청한 파일을 gzip으로 압축합니다. 첫 번째 요청에서 파일을 gzips로 축소 한 다음 나중에 요청할 수 있도록 미리 압축 된 캐시 된 버전을 보냅니다.
PHP 기반이므로 유연성과 관리 용이성을 위해 성능을 제공하지만 프록시 캐시를 앞에두면 S.Mark의 구성뿐 아니라 성능도 향상됩니다.
- 1. msg_send 호출에 얼마나 많은 오버 헤드가 발생합니까?
- 2. Reference 클래스를 사용하면 얼마나 많은 오버 헤드가 발생합니까?
- 3. 오버 헤드가 의존성 주입을 사용하지 않음
- 4. 사용자 정의 컨트롤에 오버 헤드가 많이 있습니까?
- 5. Apache Cassandra의 대역폭 오버 헤드가 압도적으로 많습니다.
- 6. VBA 클래스에는 많은 오버 헤드가 있습니까?
- 7. 파이썬 cProfile에서 심각한 오버 헤드가 발생 했습니까?
- 8. 운영체제 프로파일 링하는 동안 오버 헤드가 있습니까?
- 9. Hashtable에는 어떤 종류의 오버 헤드가 관련되어 있습니까?
- 10. TcpClient를 만드는 데 많은 오버 헤드가 있습니까?
- 11. HLSL에서 #define을 수행하면 성능 오버 헤드가 추가됩니까?
- 12. 왜 sortedDictionary에 많은 오버 헤드가 필요합니까?
- 13. NSArray의 NSKeyedArchiver에 큰 크기의 오버 헤드가 있습니다.
- 14. 서블릿 기반 스택에 상당한 오버 헤드가 있습니까?
- 15. HTTP 업로드에 많은 오버 헤드가 있습니까?
- 16. 언제든지 400 + ms 오버 헤드가 레일스에 액세스합니다.
- 17. .net의 구조 생성자 : 오버 헤드가 있습니까?
- 18. 파일을 웹 서비스를 통해 바이트 배열로 전송할 때 추가 오버 헤드가 얼마나 발생합니까?
- 19. C++ 코드를 여러 번역 단위로 분할해도 실행 파일 크기에 오버 헤드가 발생합니까?
- 20. PHP에서 긴 함수 컬렉션을 포함하는 데 많은 오버 헤드가 있습니까?
- 21. .NET에서 RaiseEvent를 사용할 때 성능 오버 헤드가 있습니까?
- 22. 최소한의 오버 헤드가 발생하는 웹 프레임 워크는 무엇입니까?
- 23. MongoDB 데이터베이스 오버 헤드가 한계에 도달하는시기를 아는 방법?
- 24. 클래스에서 바이트를 줄이면 메모리 오버 헤드가 줄어 듭니다.
- 25. ob_get_contents()를 사용하여 측정 가능한 오버 헤드가 있습니까?
- 26. 스칼라의 일반 클래스보다 케이스 클래스에 시간이나 공간 오버 헤드가 있습니까?
- 27. 추적 된 프로세스의 메모리 공간에 액세스하는 오버 헤드가 적은 방법?
- 28. WCF를 통해 전송할 때 오버 헤드가 가장 적은 데이터 유형
- 29. 클래스에 많은 메서드가 있으면 해당 클래스의 오버 헤드가 증가합니까?
- 30. 동일한 서버의 데이터베이스간에 SQL Linked Server를 사용하는 오버 헤드가 있습니까?
정말 좋은 질문입니다! 대답은 무엇인지 모르겠지만 Minify의 저자는 토론 그룹에서 매우 반응이 좋습니다. https://groups.google.com/group/minify – Annie