我会警惕使用Javascript(或任何客户端技术)加载您的网页的重要元素。有些用户在禁用JavaScript的情况下浏览网页,出于安全原因或为了延长非常慢的互联网上的加载时间(如远离城市中心并通过卫星上网的人)。如果您使用Javascript加载导航菜单等元素,这些用户根本无法浏览您的网站!
我一直在我的网站上做的一项技术是使用HTML预处理器(例如Jade)。这有点妥协。我将代码编写在组件中,但在将其部署到服务器之前,我必须编译项目,该项目将所有组件合并到一个HTML文件的每个页面中。我仍然更喜欢PHP这样的服务器端脚本,因为它减少了加载时间(PHP每次加载页面时都要执行,并且增加了HTTP请求的数量,这只是一种编译技术)。它也是一种比使用Javascript加载更灵活的因式分解技术...您可以加载“模板”,但加载某些变量(例如页面标题或当前页面,以便可以适当地设置导航菜单) 。另一个优点是Jade比HTML更令人愉快。
我使用SASS为我的CSS做类似的事情。
如果你的服务器运行的是Java,你甚至可以很容易地自动编译过程。我通过将Jade代码推送到github来自动执行我的编译过程...我有一个TravisCI钩子,它自动检测更改,编译它们,并通过ftp将结果推送到我的Web服务器。这个过程对我来说是完全没有用的,所以就我而言,我只能看到我漂亮的分解Jade代码。