组合多个jquery文件

时间:2012-05-02 07:43:16

标签: php jquery compression

出于某种原因,我无法通过php将我的javascript文件合并到一个文件中,就像我可以用css一样。

基本上我希望将我的所有javascript文件合并为一个。但是这会以某种方式破坏我的代码。它类似于jQuery生成的$ -value不能通过其余代码(例如jquery ui)获得。

由于某种原因,jQuery是否需要加载到自己的<script type="text/javascript" src=""></script>中?那是什么原因呢?

我按照他们在浏览器中使用的顺序包含它们。

jQuery - &gt; jQuery UI - &gt; jQuery自定义函数 - &gt;我自己的剧本

1 个答案:

答案 0 :(得分:0)

您可能希望在单个脚本之间添加换行符和/或分号 例如。从https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js获得的缩小的jquery ui脚本以

结束
return this}})}(jQuery)

如果您现在追加另一个脚本,则很可能会出现语法错误 让我们采取粗略的scripts.php

<?php
header('Content-type: Application/javascript');
readfile('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
readfile('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js');

echo '$(document).ready(function() {
    alert("hello");
    $( "#dialog" ).dialog( "open" );
});
';

这不起作用,但

<?php
header('Content-type: Application/javascript');
readfile('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
echo "\r\n;";
readfile('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js');
echo "\r\n;";    
echo '$(document).ready(function() {
    alert("hello");
    $( "#dialog" ).dialog( "open" );
});
';

意愿。

需要考虑的其他事项:

  • 这可能不是一颗银弹。我选择了“\ r \ n;” a)从最后一行的//注释中逃脱,b)用分号结束“open”语句。但是javascript(以及它的实现)的缺失分号行为可能相当奇怪(这是一个糟糕的特性)而且我宁愿“修复”每个单独的脚本而不是添加固定的“修复字符串”。
  • 我很擅长“像谷歌一样托管那些javascript库并依赖客户端的缓存”阵营......但是没有好的证据来支持这个位置。