Данные:
Если объем динамических данных не слишком велик и постоянно изменяется (не должен кэшироваться браузером), я бы предложил добавить его в заголовокHTML.Чтобы предотвратить загрязнение глобального пространства имен, вы можете использовать закрытие или пространство имен (объект), чтобы содержать все связанные переменные.С точки зрения производительности, я не думаю, что в этом случае будет большая разница между зацикливанием данных в JS-дружественный формат или обработкой их до мельчайших деталей на сервере (JS стал удивительно быстрым).
Все немного сложнее, когда объем данных огромен (от 100 кбайт до мегабайт).Если данные в значительной степени постоянны и кешируются, вы должны сгенерировать внешний файл данных (не фактический новый файл, а уникальный URL-адрес), который затем можно включить.Использование временной метки в имени или правильно установленных заголовков кэша позволит вам сэкономить время как на стороне сервера (генерирование вывода, ориентированного на JS), так и на стороне клиента (загрузка данных), и при этом предлагать обновленные данные.
Если у вас много данных, но они постоянно меняются, я все равно буду использовать внешние файлы JS, сгенерированные PHP, но вы должны быть очень осторожны, чтобы отключить кэширование в браузере, что делает ваши постоянно меняющиеся данные красивымимного постоянных.Вы также можете выполнять динамическую загрузку, когда вы извлекаете различные части данных параллельно и по запросу через запросы JS.
Код:
Функциональная часть вашего кода должнаследуйте объяснениям ранее: Теперь вопрос к тому, должен ли JS быть встроен в HTML или разделен.Это сильно зависит от кода, в основном от его длины и возможности повторного использования.Если это всего лишь 20 строк JS, 10 из которых являются массивами и т. Д., Сгенерированных PHP, было бы более целесообразно оставить код внутри HTML, потому что HTTP-запросы (способ доставки всех ресурсов клиенту)дорого и запрос небольшого файла не обязательно хорошая идея.
Тем не менее, если у вас есть файл побольше, с большим количеством функций и т. Д. (10 с. Кбс), было бы разумно включить его как отдельный файл .js, чтобы сделать его кэшируемым и сохранить его отзагружается каждый раз.
И нет никакой разницы в производительности PHP или JS, независимо от того, используете ли вы JS внутри шаблонов / PHP или отдельно.Это просто вопрос управления проектом.Что бы вы ни делали, вы должны серьезно изучить использование шаблонов.