本节书摘来自异步社区《html5和javascript web应用开发》一书中的第1章,第1.2节,作者:【美】wesley hales著,更多章节内容可以访问云栖社区“异步社区”公众号查看
不可否认,传统的服务器端模板正逐渐被javascript模板所取代。随着许多新javascript框架的出现,我们似乎也有些反应过度,但这就是技术发展过程中所出现的现象:由于浏览器变得更加容易移动,并且通过javascript api得到更多硬件访问能力,因此驱动ui的技术也在变化。从某种程度来说,客户端和服务器端方法中用户界面的构件是相通的,它们都需要显示和收集数据。我们仍然需要在代码中添加框架专有的标记或者属性,以便知道数据在哪里显示,但是不再需要依赖服务器。现在,我们从间歇性的rest风格和websocket连接得到对象和数据,这些连接通过客户端的javascript框架自动与ui绑定。我们的应用程序现在能够偶然同步数据,并且拥有离线工作的能力。
为了加强这种能力,处理应用程序的不同状态,我们必须考虑使用新的客户端代码管理方法。jquery和prototype之类的javascript程序库不能定义前端开发模式,我们应该认真考虑使用跨浏览器dom来操纵程序库,但是可伸缩客户端架构比以前更复杂了。利用erich gamma等人的经典著作《design patterns:elements of reusable object-oriented software》(_addison-
wesley professional,1995)中收集的成熟技术组织代码和应用程序结构只是一个开始。现在,超过40个mvc javascript框架自认为是mvc框架,但是它们应该叫做mv*。它们都使用了不同的技术管理模式、视图和控制器,许多框架与原始的smalltalk mvc概念已经有了很大的不同。尽管javascript框架为我们提供了很好的代码组织和构造手段,我们仍然必须自己处理输出硬件级访问的浏览器api,例如geolocation或者web workers。重量级的html5驱动用户界面架构仍然处于探索期,但是你很幸运,因为本书能够帮助你看清前方的道路。