Hotwire是一个建置现代网页应用程序的替代方案,不需要使用大量的JavaScript,透过传送HTML(HTML-Over-The-Wire),达到快速载入网页的效果。不用大量JavaScript,而是传送HTML的方式,不只可以实现快速载入首次页面的目的,还能够将模板渲染交给服务器,并在不牺牲传统单页应用程序的速度与响应性的情况下,让开发者使用各种程序语言开发网页程序,有效提升生产力。
网页应用程序透过传送HTML来呈现客户端页面,并非全新的方法,只是近几年JavaScript技术蓬勃发展,吸引了多数开发者的目光。由RubyonRails的创始人DHH所创办的Basecamp,在年开发了全新电子邮件网页应用Hey,这是一个功能齐全的子邮件用户端,但是仅使用很少的JavaScript,提供顺畅的操作体验,因而使得传送HTML来呈现客户端画面的发展,再次受到一些瞩目。
Basecamp把用来打造Hey前端的栈与技术打包,发布成为Hotwire设计框架,其中主要包含了Hotwire的核心Turbo框架,以及为HTML设计的JavaScript框架Stimulus。Turbo提供了一些补充技术,来大幅减少应用程序需要编写的JavaScript,像是TurboDrive让网页更新不需要重新载入整个页面,加快了连接与窗口提交的速度,而TurboFrames可以将页面解构成为独立的内容,透过定义浏览的范围,并进行延迟载入。
TurboStreams则可以利用WebSocket传递页面更新,或是使用HTML和类CRUD操作,以响应窗口提交,还有TurboNative,可以让应用程序原生支持iOS和Android,无缝切换网页以及原生程序的区块。这些组件都以发送HTML运作,而当Turbo无法满足开发者的需求时,则可以使用Stimulus框架来解决剩下的问题。
Stimulus是一个JavaScript框架,但不像是其他前端框架,Stimulus不会接管前端,其目的仅是使用简单注解,将JavaScript对象连接到页面元素,来强化静态或是服务器渲染HTML。这些JavaScript对象称为Controller,Stimulus会持续监控页面,直到HTML数据Controller属性出现。
开发者也可以使用自己选用的工具,来达成HTML-Over-The-Wire的目的,只不过Hotwire包含完整的开发工具,并且提供跨平台解决方案,可供开发者方便使用。
转载请注明:http://www.0431gb208.com/sjszlfa/3231.html