Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

模板引擎、前后端分离、单页模式

  模板引擎、前后端分离、单页模式,它们本应是三个完全分离的概念,但确实有很多现代 Web 项目同时使用了这些技术,于是它们的概念就经常被混淆。虽然它们各自并不闪耀,但当它们一起使用时确实可以成为现代 Web 中一种优秀的实践。

模板引擎

  模板引擎是相当古老的东西了,现在能看到的很多后端编程语言其实都是基于模板引擎的。但这种语言级的模板引擎其实很难让开发者满意。以前写 ASP 的时候觉得用程序把数据库查询出来的数据填入页面中是一件很痛苦的事情。不是写出一堆凌乱的标签就是程序里做一堆字符串拼接。如果再考虑上内容的安全性,要做各种过滤和转义,简直会让人奔溃。于是我当时就粗暴地用各种字符串操作实现了一套简单的模板引擎(当时还不会正则)。

前后端分离

  前后端分离的故事得从 Ajax 说起。在 Ajax 流行起来后,大家都开始了「无刷新」之旅。当时大部分网站都是以链接形式跳转的时候,自己使用「无刷新翻页」觉得已经很先进了。后来无刷新翻页也渐渐开始烂大街,百度搜一下可以搜出一坨东西,于是就开始考虑全页面的无刷新操作。渐渐地「Web 接口」这种东西出现,但是此时的「接口」其实主要还是直接输出 HTML,并没有考虑结构化之类的东西。

前端模板引擎

  由于对「接口」的依赖越来越强,单纯地输出 HTML 就已经不能满足开发者的欲望了,于是大家都开始考虑输出结构化数据。最初我搞了一套基于 XML 的接口,因为 IE 对 XML 的支持相当友好。前端接到数据后需要渲染到页面上,最初还是直接 DOM 操作。后来才把后端的模板引擎这个概念搬过来用的,这时候我才刚把正则搞明白 :joy:。

单页模式

  然而大家并不会满足于某个页面上的「无刷新」,这才是疯狂的开始。当时看到有人用 URL Hash 实现了单页模式,这应该是我见过最早的单页解决方案了。那时候的实现还是用计时器去扫描监控 URL Hash 变化,简直是黑魔法堆出来的东西。虽然很先进了,但我怕有坑就一直不敢用。
  拖着拖着就拖到了 HTML5 CSS3 的时代,直到 History API 在 Chrome 上稳定支持后我才开始尝试单页模式。其实到目前为止对单页模式的尝试我还不太确定这东西是不是真的好。不过就目前的普及程度而言,不得不承认它已经是一种优秀的实践了。

整合

  总的来说,这些技术本身都是可以单独存在单独使用的,谁都不依赖谁。但整个历史是这么走过来的,所以这三个东西非常适合在一起使用。现在大家一说到「单页应用」就是「路由」、「模板」、「接口」,这是不对的。不过我也不想咬文嚼字,如果非要如此定义也行吧,只要有个可以说服自己的理由,怎么样都行,反正我听不见。

网名:
54.80.247.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^