Php $not defined-javascript错误,试图优化文件

Php $not defined-javascript错误,试图优化文件,php,javascript,prototypejs,optimization,Php,Javascript,Prototypejs,Optimization,大家好,我的应用程序使用了很多不同的javascript文件。所以我试着快点把所有的文件放在一个文件里。为此,我使用以下代码创建了一个php: <?php header('Content-type: text/javascript'); $js = array( .... ); // all files to include $js = array_unique($js); foreach($js as $oneJs) require_once('scripts/'.$

大家好,我的应用程序使用了很多不同的javascript文件。所以我试着快点把所有的文件放在一个文件里。为此,我使用以下代码创建了一个php:

<?php
header('Content-type: text/javascript');


$js = array( ....   ); // all files to include

$js = array_unique($js);

foreach($js as $oneJs)
    require_once('scripts/'.$oneJs);

原因可能是加载脚本的顺序。确保抓取它们,以便在执行时所有的依赖项都准备就绪。

执行此操作时需要注意两件事

  • 确保装载顺序正确。如果您有使用jQuery的脚本文件,则需要首先加载jQuery。
    $未定义
    错误听起来好像jQuery加载太晚了

    有时我会在名称中添加数字(
    1_jquery.js
    2_dialog.js
    …),然后对数组执行排序()

    您还可以考虑使用数组来指定最重要的JavaScript包含的顺序,并以任意顺序加载其余的。

  • 确保没有因为每个脚本文件末尾缺少粘在一起的“;”而导致的“误解”语句。在每个包含的文件之间回显一个独立的“;”是一个很好的做法


  • $也是prototype,但在本例中,我将prototype作为堆栈中的第一个脚本。我还应该注意什么呢?从firebug-在页面加载时没有调用任何错误-但是每当使用$function@Ali然后需要显示JS文件。可能会将其粘贴到pastebin.com或jsbin上。@Ali您也可以尝试通过JSLint.com运行它。好的,我找到了它-实际上我包含的一个文件,我曾尝试使用第三方minifyer压缩它,但错误在该文件中。由于所有文件都被导入到一个js.php文件中,因此整个文件被呈现为不起作用。再次感谢你的帮助,把事情解决了!如果您这样做,您将不得不花费大量精力来设置正确的缓存头,并支持
    (如果自
    以来进行了修改)。否则,浏览器可能不会像缓存静态文件那样缓存脚本,并且会更频繁地重新获取脚本(在最坏的情况下,每次加载页面时)。这会使你的网站响应速度大大降低,而不是提高!
    <script type="text/javascript" src="includes/js.php"></script>