您可能希望在单个脚本之间放置一个换行符和/或分号。
例如,您从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 库并依赖客户端的缓存”阵营中很坚强……但手头没有充分的证据来支持这一立场。