2013-09-25 2 views
2

Я вижу некоторые связанные вопросы, но ничего конкретного в этом случае.PHP - Использование `file_get_contents()` для вставки javascript

Этот вопрос задается в контексте Magento, но он ни в коем случае не ограничивается здесь.

У меня есть шаблон <head>, который, помимо прочего, сделает голова, включает в себя различные файлы Javascript.

Существует один сценарий, который по общим причинам я предпочел бы включить в CDN автора. К сожалению, автор не делает версию доступной по HTTPS, что приведет к тому, что пользователи будут видеть «небезопасный контент» при загрузке этого скрипта (и в зависимости от браузера, не запуская код).

Я понимаю, что могу просто сохранить этот файл в своем локальном домене, где он будет доступен через HTTPS, но, как я уже сказал, я бы предпочел захватить этот скрипт из CDN.

Как работа вокруг, я использовал (в шаблоне):

<script type="text/javascript"> 
    <?php echo file_get_contents('http://path.to/the/file.js' ?> 
</script> 

Это позволяет файл жить без версии HTTPS, поскольку она включена, когда PHP разбирается, а не как отдельный ресурс загруженного в браузере во время выполнения.

Предполагая, что я оставил комментарий в шаблоне, объясняющий, почему этот метод используется, есть ли какие-либо значительные изменения, которые я могу найти, делая это таким образом?

+0

просто убедитесь, что источник заслуживает доверия. – ihsan

+1

Не знаете, какой файл вы пытаетесь захватить, но в случае, если он является одним из многих перечисленных здесь https://cdnjs.com/, все они поддерживают https. –

+1

Я бы ** много ** больше склонялся, чтобы сохранить файл на вашем сайте и обслуживать его через HTTPS. Каковы ваши «общие причины»? –

ответ

1

Есть два недостатка с этим подходом:

  • Пользователь не может кэшировать Javascript (что приведет к замедлению времени загрузки)
  • Вы можете использовать дополнительную пропускную способность и дополнительные соединения для загрузки содержимого из другого источника (более медленное время загрузки). Если это веб-сайт с высоким трафиком, он имеет большое влияние на производительность.

Предполагая, что причина, по которой вы хотите скачать прямо с CDN, потому что всегда требуется обновленный скрипт. Вы можете сначала загрузить содержимое скрипта и поместить его на свой сервер. Имейте cron задание для повторной загрузки сценария из CDN один раз в день. Это поможет вам получить обновленный скрипт, а также повысить производительность.

+0

Это кажется совершенно правильным, хотя в моем случае Magento уже будет кэшировать этот шаблон, поэтому его не нужно будет загружать каждый раз. – pspahn

0

Я не знаю, о каком файле javascript мы говорим здесь. Если это что-то популярное, то, скорее всего, вы можете CDN, который уже размещает его. Если это случайный файл javascript, который вы включаете, то вы можете сделать что-то вроде этого:

  1. Возьмите javascript-файл через завиток.
  2. Нажмите захваченный файл javascript на свой личный CDN.
  3. Связать свои файлы просмотра, чтобы указать, что файл javascript размещен на CDN.
  4. Задайте задачу CRON, чтобы проверить обновления источника javascript. Если найдено, повторите процесс 1-2-3.

Это может быть слишком много, но это вариант.

Одним из недостатков вашего использования будет трафик. Вы будете использовать как входящий, так и исходящий трафик, поскольку вы будете запрашивать и обслуживать javascript каждый раз.Вы должны кэшировать его (и это одна из причин, почему CDN для) и служить оттуда.

Смежные вопросы