По моему опыту, вам редко (и очень редко) вам нужно динамически генерировать весь скрипт. Например, в javascript вам может понадобиться динамически получить часть данных (например, информацию о пользователе или настройки) в javascript, но остальная часть сценария (манипуляции с классами / функциями / DOM) статична для всех пользователей.
Как правило, в этом случае вы просто хотите поместить динамический материал «встроенный», динамически выводить из PHP, а затем включить js (95%, который не нужно динамически генерировать) в качестве внешнего скрипта. Наиболее очевидной причиной этого является кэширование js / css.
Рассмотрите, как reddit.com делает это, посмотрев их исходный код для получения пользовательских данных в javascript.
var reddit = {
/* is the user logged in */ logged: 'username',
/* the subreddit's name (for posts) */ post_site: "",
/* are we in an iframe */ cnameframe: false,
/* this page's referer" */ referer: "",
/* the user's voting hash */ modhash: 'lzbcszj9nl521385b7e075e9750ee4339547befc6a47fa01e6',
/* current domain */ cur_domain: "reddit.com", ...
}
Остальные их js находятся во внешних файлах.