Как мне включить файлы javascript на стороне сервера?

#javascript #server-side

#javascript #на стороне сервера

Вопрос:

Я хочу включить файл JS в другой файл JS на стороне сервера, чтобы предотвратить копирование-вставку и загрузку нескольких файлов JS с клиента. Точно так же, как включить (‘file.js ‘), как это сделал бы PHP.

Комментарии:

1. Спасибо за ответы, но я просто хочу, чтобы это было сделано на сервере, с одной загрузкой файла javascript с клиента. Я бы предпочел превратить .js в .php (или переписать) и использовать PHP include, а затем header(‘content-type:text / javascript). Любые другие решения?

Ответ №1:

Не существует встроенного способа включения других файлов 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');
  

Комментарии:

1. Я, конечно, проголосую за симпатичный код, но лучше справлюсь с проблемами пути, порядка загрузки скриптов и управления зависимостями для загрузчика скриптов 🙂

Ответ №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'");
    }
}
?>
  

Я бы также рекомендовал прочитать полную статью Supercharging JavaScript в PHP, чтобы получить больше информации.

Комментарии:

1. Да, это то, о чем я только что думал. Для этого мне не нужна библиотека. Я могу просто сделать это сам в нескольких строках кода. Спасибо 🙂

Ответ №3:

JSfile = «1.js, 2.js, 3.js»

для цикла это

document.write();

Ответ №4:

Вам придется использовать загрузчик сценариев, и я хотел бы порекомендовать script.js Дастина Диаса, который работает в Twitter. Страница проекта на Github. Вот как вы это используете, предполагая, что у вас есть плагин 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 amp; 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. Теперь включите скрипт загрузки зависимостей, который загружает все другие нужные скрипты асинхронно [содержимое скрипта загрузки зависимостей будет таким, как указано выше]