javascript 파일 내 base64 형식으로 저장된 다른 파일 유형 중에서 css 및 이미지를 포함 할 수 있습니다. 그러나 그것들은 상당히 거대하고 ... gzip으로 압축되어, base64 인코딩에서 33 %의 오버 헤드가 있더라도 많은 것을 줄입니다.base64 gzipped 스타일 시트/이미지를 자바 스크립트에 포함 시키시겠습니까?
ggipped가 아닌 이미지는 data : image/gif, base64, data : image/jpeg, data : image/png 및 css는 data : text/css이며 base64입니다. gzip으로 압축 된 CSS 또는 이미지 데이터 URI를 포함하려면 어떤 mime 유형을 사용할 수 있습니까? (또는 gzip + base64가 작동하지 않는다면, 자바 스크립트 내에 저장된 데이터를 유지하면서 문자열의 크기를 줄이기 위해 할 수있는 다른 압축이 있습니까?)
.. 편집 .. 질문이 오해되고 있습니다. 경우 자바 스크립트 내에서 gzipped base64 문자열을 포함해야합니다 묻는 중입니다. 예, 대부분의 경우 서버 끝의 javascript 및 기타 파일을 gzip하는 것이 가장 좋습니다. 그러나 이것은 userscript에는 적용 할 수 없습니다. userscript는 서버가 없으며 하나의 파일로만 구성됩니다. Firefox는 @require 지시어를 허용하지만 Opera와 Chrome은 그렇지 않으며 로컬 파일 보안 문제는 모든 로컬 파일로드와 관련됩니다. 따라서 스크립트에 필요한 것은 1) 웹에서 (느림) 또는 2) 사용자 스크립트 (큰 스크립트)에 포함되어야합니다.
이제이 질문은 큰 것이 천천히가는 것이 바람직하다고 가정하지만 큰 것은 우리가 얼마나 큰지를 완전히 무시한다는 것을 의미하지는 않습니다. 그것이 더 작을 수 있다면, 그것은 개선입니다.
그래서 base64 문자열이 자바 스크립트에 포함되어 있다고 가정하면 문제를 의미있는 것으로 만드는 방법이 있습니다.
어느 :
1) atoB 유전자는() 내의 자바 스크립트 원료 GZIP 원시 base64 인코딩 GZIP 변환 할 수있다. (atob은 mediatype을 알 필요가 없습니다). 문제는 원시 gzip으로 압축 된 CSS 또는 이미지 파일을 압축 해제하여 결과 출력을 문서에 입력하는 방법입니다.
또는 2) 적절한 mediatype이 주어지면 이론적으로 (datauri RFC 당) 브라우저는 datauri에서 직접 임의의 파일을로드 할 수 있어야합니다. ""gzip 형식이 아닌 CSS 스타일 시트를로드하기에 충분합니다. 여기에있는 질문은 링크 유형 속성과 데이터 리 mediatype 조합이 작동해야하는 것 (그리고 어떤 브라우저가 작동 할 것인가)이 될 것입니다. 가급적이면 userscript는 Opera, FF 및 Chrome에서 작동하는 조합입니다.
base64 인코딩의 오버 헤드는 33 %입니다. –
수정 됨.:) 저는 오버 헤드의 크기에 대해서는별로 신경 쓰지 않습니다. userscript의 경우 모든 것을 하나의 단일 배포 가능 파일로 유지하는 것만큼이나 크기가 중요하지 않습니다. 하지만 base64 얼룩을 가능한 작게 유지하는 것이 좋을 것입니다. 따라서이 질문은 – BrianFreud
JS에 base64를 포함시키고 JS를 gzip으로 채우시겠습니까? – sdleihssirhc