2009-05-15 66 views
12

Tôi đang làm việc trên một ứng dụng PHP yêu cầu tám tệp javascript (hello web2.0).Kết hợp và Nén nhiều tệp JavaScript trong php

Tôi tự hỏi cách tốt nhất là kết hợp và nén tất cả các tệp theo cách động. Tôi có nói đúng câu hỏi không?

Kết quả cuối cùng là tôi sẽ bao gồm một tệp .js trong tiêu đề và tệp .js đó sẽ bao gồm tệp .js trong thư mục "bao gồm/js" của tôi.

Cảm ơn.

+3

Có một câu trả lời 2012 đến câu hỏi này? – Ben

Trả lời

14

Bạn có thể sử dụng jsmin-php

mẫu mã của họ là:

require 'jsmin-1.1.1.php'; 

// Output a minified version of example.js. 
echo JSMin::minify(file_get_contents('example.js')); 

Bạn dễ dàng có thể tham gia nhiều file js bằng cách làm một cái gì đó như:

require 'jsmin-1.1.1.php'; 

// Output a minified version of example.js. 
echo JSMin::minify(file_get_contents('example.js') . file_get_contents('example2.js')); 
+1

bạn sẽ đề nghị này hơn bằng cách sử dụng Minify? – superUntitled

+0

Cả hai đều sử dụng jsmin để nén các tệp Javascript. Có lẽ bạn nên nén tập tin js của bạn với cả hai thư viện và quyết định. Tuy nhiên, tính năng bộ nhớ đệm của Minify có vẻ tốt. – pgb

+0

Dường như không có vấn đề gì với một số vấn đề nổi bật – Deebster

7

Tôi đã sử dụng Minify với các dự án jQuery/PHP của mình với nhiều thành công. Nó bao gồm bộ nhớ đệm quá nên không có nhiều chi phí.

tôi đã kết thúc thay đổi mọi thứ xung quanh và sử dụng .htaccess để định tuyến tất cả các yêu cầu tới thư mục javascript của tôi để kịch bản giảm bớt, vì vậy ví dụ:

<script type="text/javascript" src="/js/jquery.js,js/jquery-levitip.js,js/jquery-facebox.js,js/datepicker.js,js/ga.js"></script> 

với các tuyến đường HTML front-end của tôi vào kịch bản giảm bớt của tôi và nó trả về tất cả các kịch bản như một, nén và rút gọn. Bằng cách đó tôi có thể xác định bao gồm bình thường và mọi thứ xảy ra đằng sau hậu trường.

Nhưng dù sao hãy kiểm tra user guide trên trang web của họ, tài liệu này được viết rất tốt và bạn cũng có thể rút mọi thứ theo cách bạn muốn. Oh và nó cũng hoạt động với CSS.

+0

thư mục bộ nhớ cache minify của tôi luôn luôn trống, vì vậy tôi không chắc chắn là bộ nhớ đệm làm việc –

0

Bạn có thể thử PHP Speedy Điều này sẽ kết hợp và nén các tệp JS của bạn cho bạn thành 1 tệp duy nhất. Nó cũng sẽ nén HTML và CSS của bạn và trang của bạn sẽ tải nhanh hơn rất nhiều.

-1
function compress($buffer) { 
     /* remove comments */ 
     $buffer = preg_replace("/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/", "", $buffer); 
     /* remove tabs, spaces, newlines, etc. */ 
     $buffer = str_replace(array("\r\n","\r","\t","\n",' ',' ','  '), '', $buffer); 
     /* remove other spaces before/after) */ 
     $buffer = preg_replace(array('(()+\))','(\)()+)'), ')', $buffer); 
     return $buffer; 
    } 

Nguồn: http://castlesblog.com/2010/august/14/php-javascript-css-minification

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