0

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

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

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

我按照它们在浏览器中工作的相同顺序包含它们。

jQuery -> jQuery UI -> jQuery 自定义函数 -> 我自己的脚本

4

1 回答 1

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) 用分号关闭“打开”语句。但是 javascript(及其实现)缺少分号的行为可能相当奇怪(这是一个不好的功能),我宁愿手动“修复”每个单独的脚本,而不是添加一个固定的“修复字符串”。
  • 我在“让像谷歌这样的 CDN 托管那些 javascript 库并依赖客户端的缓存”阵营中很坚强……但手头没有充分的证据来支持这一立场。
于 2012-05-02T08:41:06.593 回答