2009-12-13 39 views
5

Google có máy nén JavaScript rất đẹp gọi là "Đóng cửa"Làm cách nào để áp dụng Google Closure cho toàn bộ trang web của tôi?

http://closure-compiler.appspot.com/home

Nhưng đó là một nỗi đau để sử dụng cho nội tuyến JavaScript trong một tập tin HTML.

Câu hỏi: Công cụ trực tuyến có tồn tại ở nơi tôi chỉ cần cung cấp đầu vào "uncompress.html" và nó rút ra phiên bản nén của HTML đó với tất cả JavaScript nội tuyến được nén không?

+2

Vì lý do nào bạn cần JavaScript nội tuyến trong tệp HTML? –

+2

Tôi cần JS để chạy ngay lập tức. Vì vậy, cách thực hiện nhịn ăn để làm điều này là có JS nội tuyến. Plus, JS này chỉ được sử dụng trên một trang HTML duy nhất – NickH

Trả lời

2

Bộ giảm âm, bộ đệm và máy nén đã được thiết kế để giải quyết vấn đề tải xuống các phần tử bên ngoài khi tải trang. Chúng không bao giờ được sử dụng cho JavaScript hoặc CSS nội tuyến vì nhiều thứ thường được giữ bên ngoài trang trong một tệp riêng biệt.

Vì bạn nên gzipping càng nhiều càng tốt, cho các trình duyệt có thể xử lý gzip, nó không nên trong thực tế vấn đề css/javascript nội tuyến của bạn không được khai thác trên trang.

+0

Bạn sẽ nghĩ nhưng tôi có rất nhiều JavaScript. Đơn giản chỉ cần chạy đóng cửa một mình trên JS của tôi là giảm JavaScript của tôi bằng gần 94 kb thậm chí gzipped. JavaScript của tôi tiếp cận 400 kb (gzipped), do đó, cắt 94 kb của JS nén là lớn – NickH

+1

nếu có nhiều nội tuyến javascript nó có lẽ nên có trong tập tin riêng của mình vì nó sẽ có đường ống riêng để tải xuống và không cần phải đi vào tệp all.js. Trình duyệt hiện đại có 8 đường ống để tải xuống vì vậy nghi ngờ bạn sẽ có quá nhiều ngăn chặn – AutomatedTester

+2

Thần của tôi 400Kb (nén) của javascript nội tuyến !!! – micmcg

1

Nếu bạn sử dụng PHP, bạn có thể gọi trình biên dịch của google theo cách này, và sau đó sử dụng các tiêu đề để trở javascript

<?php 
    $script = file_get_contents('http://www.domain.com/scripts/script.js'); 
    $ch = curl_init('http://closure-compiler.appspot.com/compile'); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'output_info=compiled_code&output_format=text&compilation_level=SIMPLE_OPTIMIZATIONS&js_code=' . urlencode($script)); 
    $output = curl_exec($ch); 
    curl_close($ch); 

    header('Content-type: application/javascript'); 
    echo $output; 

?> 

link php code

0
bình luận

Mirroring AutomatedTester, bạn thực sự không nên đặt rất nhiều JavaScript nội dòng vào tệp HTML của bạn.

Nhưng nếu bạn thực sự thực sự muốn làm điều đó vì một lý do, tại sao không thể bạn:

  1. Thực hiện một tập tin văn bản có chứa các Javascript
  2. Nén nó với Đóng
  3. Sao chép nó vào số <script></script> thẻ

Tôi biết điều này không tự động, nhưng bạn chỉ cần làm khi bạn đang triển khai và bạn không triển khai từng giờ, đúng không?

Tôi chưa thấy cần phải giảm thiểu HTML, vì gzip thường làm đủ công việc ...

Các vấn đề liên quan