Что я обычно делаю, это:
- поместите как можно больше JS в файл .js (для кэширования на стороне клиента и все такое)
- этот код JS использует переменную JS
- что переменная JS объявлена / инициализирована из файла PHP; это единственная часть, где вам нужен код, выполняемый на стороне сервера, на самом деле
Например, у меня было бы что-то вроде этого, я полагаю:
my-file.php:
var thisIsMyJSVar = '<?php echo $test; ?>';
Итак, в PHP мы объявляем переменную и устанавливаем ее значение. Это «динамическая» часть.
и в my-file.js:
//when the DOM is ready
$(document).ready(function(){
//settings on top
var domain = 'http://davidwalsh.name/';
var initialPosts = thisIsMyJSVar; // Use the JS variable declared in the PHP file
//function that creates posts
var postHandler = function(postsJSON) {
$.each(postsJSON,function(i,post) {
Здесь, в статическом файле JS, мы используем только значение; здесь нет ничего динамического, и этот файл может быть кэширован клиентом, чтобы его нельзя было повторно загружать на каждой странице.
Проблема с этой идеей в том, что файл JS зависит от некоторой инициализации, выполняемой в файле PHP: - (
Итак, было бы неплохо иметь "значение по умолчанию" в файле JS, на всякий случай ...
Кроме того, вы должны иметь хорошее соглашение о присвоении имен, чтобы не иметь несколько файлов, использующих / declaring / в зависимости от одной и той же переменной JS; на самом деле было бы неплохо поместить все ваши «переменные конфигурации» в один объект javascript, чтобы не загрязнять глобальное пространство имен ...