Tôi đã nhìn thấy một số tham chiếu để gzipping một javascript để tiết kiệm thời gian tải xuống. Nhưng Tôi cũng thấy một số cảnh báo mà một số trình duyệt nhất định không hỗ trợ điều này.Làm thế nào để liên kết đến một javascript gzipped trong một tài liệu html?
Tôi có hai phương pháp khác nhau theo ý của tôi:
- sử dụng
mod_deflate
để làm cho Apache nén JS files/CSS trong một thư mục nhất định thông qua htaccess - sử dụng
ob_start('gzhandler')
để nén một tập tin và gửi lại cho trình duyệt với tiêu đề chính xác.
Các vấn đề với phương pháp 1 không phải tất cả các trình duyệt đều hỗ trợ mod_deflate và tôi không biết cách viết tệp .htaccess
đủ thông minh để điều chỉnh.
Vấn đề với phương pháp 2 là không có câu trả lời dứt khoát về cách cho biết trình duyệt có hỗ trợ tập lệnh gzipped hay biểu định kiểu hay không và điều đó có phải là loại mime phải được cung cấp làm loại nội dung trong tiêu đề hay không .
Tôi cần một số lời khuyên. Thứ nhất, phương thức nào được các trình duyệt chấp nhận rộng rãi hơn? Thứ hai, làm thế nào để phân rã bằng cách sử dụng một trong hai phương pháp để cung cấp kịch bản sao lưu không nén? Thứ ba, sẽ tự mình làm việc <script src="js/lib.js.gz" type="text/javascript"></script>
? (Nó rõ ràng sẽ không phân rã.)
Để ghi lại, tôi đang sử dụng PHP5 với mod_deflate và khả năng tạo gzip đầy đủ và tài liệu của tôi là xhtml nghiêm ngặt. Ngoài ra, bản thân javascript được nén với YUI. Chỉnh sửa: Tôi vừa quay lại và nhìn, nhưng tôi chỉ có Apache 1.3; Tôi nghĩ rằng tôi đã có 2, vì vậy xin lỗi vì đã đề cập đến mod_deflate khi tôi có lẽ không có nó.
Bạn có biết cách thay đổi kiểm tra tác nhân người dùng để xem đó là IE6 hoặc thấp hơn không? Tôi muốn gửi IE6- tới tệp JS chuẩn. (Rõ ràng họ là cầu kỳ về gzip trước IE6 SP2 và IE7.) –
tôi tin rằng bạn sẽ có thể chỉ cần kiểm tra người dùng đại lý cho "MSIE 6.0" – Owen
oh quên thêm nó tầm thường để giả mạo người dùng đại lý, nhưng tôi giả sử nhất ie6 người dùng sẽ không thực sự được vào đó dù sao đi nữa: RewriteCond% {HTTP_USER_AGENT}! ". * MSIE 6 \ .0. *" nên hoạt động – Owen