如何在服务器端包含JavaScript文件?

5

我希望在服务器端将一个JS文件包含到另一个JS文件中,以防止客户端复制粘贴和加载多个JS文件。就像PHP中使用include('file.js')一样。


谢谢回答,但我只想在服务器上完成,使用一个单一的JavaScript文件从客户端加载。我宁愿将.js转换为.php(或重写),并使用PHP include,然后header('content-type:text/javascript')。还有其他解决方案吗? - Moe Sweet
4个回答

3

在 JavaScript 文件中没有内置的方法去包含其他 JavaScript 文件... 但是你可以把它们添加到 DOM 中 ->

function addJavascript(jsname,pos) {
  var th = document.getElementsByTagName(pos)[0];
  var s = document.createElement('script');
  s.setAttribute('type','text/javascript');
  s.setAttribute('src',jsname);
  th.appendChild(s);
}

示例用法:

addJavascript('newExternal.js','body');

我一定会为这个可爱的代码投票,但最好处理路径问题,脚本加载顺序和依赖项管理到脚本加载器 :) - Deeptechtons

2
根据Supercharging javascript文章的建议,使用PHP可以读取所有.js文件并创建一个大的js文件,然后一次性发送。以下是该文章示例的简化版本,以帮助您入门:
<?php 
define('SCRIPT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/script/');

$files = array(
    'jquery.js',
    'myLib.js',
    'site.js'
);

header('Content-Type: text/javascript');
foreach (files as $file) {
    if (@readfile(SCRIPT_DIR . $file) === false) {
        error_log("javascript.php: Error reading file '$file'");
    }
}
?>

我建议阅读完整篇文章“在PHP中加速JavaScript”以获得更多信息。

是的,这正是我正在思考的。我不需要一个库来完成这个任务。我只需要写几行代码就可以了。谢谢 :) - Moe Sweet

1

JSfile = "1.js, 2.js, 3.js"

for循环它

document.write();


0

您需要使用一个脚本加载器,我想推荐 Twitter 的 Dustin Diaz 开发的 script.jsGithub 上的项目页面。 以下是使用方法: 假设您有一个要在页面中加载的 jQuery 插件,这是您应该做的:

// load jquery and plugin at the same time. name it 'bundle'
$script(['jquery.js', 'my-jquery-plugin.js'], 'bundle')

// load your usage
$script('my-app-that-uses-plugin.js')


/*--- in my-jquery-plugin.js ---*/
$script.ready('bundle', function() {
  // jquery & plugin (this file) are both ready
  // plugin code...
})


/*--- in my-app-that-uses-plugin.js ---*/
$script.ready('bundle', function() {
  // use your plugin :)
})

示例也来自项目页面。以下是您应该遵循的步骤

  1. 首先加载Script.js文件
  2. 现在包含依赖项加载器脚本,该脚本异步加载所有其他所需脚本[依赖项加载器脚本的内容将类似于上面]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接