同构JavaScript

 

     同构JavaScript应用指的是用JavaScript编写的应用,能够同时运行于客户端和服务器。这也让在客户端和服务器之间共享代码变成一种更普遍自然的选择。这一趋势通过库(如React)共享模版得到了增强。

围绕Web最著名的格言之一是Java的“一次编写,到处运行”。不过这个座右铭只适用于Java吗?我们能否也用它来形容JavaScript?答案是肯定的。


单一页面应用

多年前,Web是一群由HTML和CSS构建的静态页面,没有太多的交互性。每个用户行为要求服务器来创建和提供一个完整的页面。幸于JavaScript的出现,开发者开始创建漂亮的效果。不过这是随着Ajax的出现才开始的一场革命。Web开发者开始编写能够与服务器发送和接收数据的代码,同时不需要重新加载页面。

随着时间的推移,客户端的“职责”增长了很多,导致了一种新的应用类型,即SPA(单一页面应用)。在一个SPA中,所有必要的资产都通过单一页面加载或动态加载恢复,并在必要时添加到页面中。这样的例子有GmailStackEdit编辑器

SPA允许更好的互动,因为几乎所有的操作都在客服端中执行,最大限度的保持与服务器通信。不幸的事它也存在一些重大问题,接下来我们讨论其中的一些。

性能

因为SPA需要比静态页面更多的客服端代码,增加了下载的数据量。这会导致较慢的初始加载时间,从而产生不好的后果,比如用户的流失和收入的减少。引用微软的一篇文章中的一句话:

一份Bing的研究发现一个页面加载时间增加10ms就是花费站点250美元。

SEO

由于SPA依赖于JavaScript执行,服务器不产生所有的HTML内容。因此网络爬虫在索引页面时会有很多困难(网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫)。最近谷歌改进其网络爬虫,让它接纳基于JavaScript的页面。然而对于Bing、Yahoo以及其他的搜索引擎呢?对所有业务而言良好的索引是至关重要的,因为它通常会带来更多的访问和更高的收入。

同构JavaScript应用

同构JavaScript应用指的是用JavaScript编写的应用,能够同时运行于客户端和服务器。因此,你只需编写一次代码,在服务器上执行它来实施静态页面,同时执行于客户端以允许快速的交互。所以这种方法在两个世界中都能取得最好的结果,避免了前面描述的两个问题。

如今有几种框架可以帮助你开发这类应用,而其中最著名的框架之一可能就是Meteor。Meteor是一个开源的JavaScript框架,基础构架是Node.JS + MongoDB,专注于实时的Web应用。另一个想提到的项目是Render,一个通过Airbnb的小型库,允许你同时在客户端和服务器上运行Backbone.js应用。

越来越多的企业开始对项目采用Node.js,在客户端和服务器之间共享代码变成一种更普遍自然的选择。这一趋势通过库(如React)共享模版得到增强。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于 Node 的 JavaScript 同构解决方案。提供了 saber 的服务端运行环境,使其具备从 SPA 到 MPA,从前端渲染到后端渲染的深度响应式能力。Rebas 使首屏渲染由服务器端完成,极大地降低了 SPA 首屏的白屏时间并解决了 SEO 问题。借助于 node ,服务器端的渲染逻辑不用额外开发,只需要对现有的 Saber 应用进行小幅修改就能让已有的逻辑同时运行在客户端与服务器端。Saber 所有的基础组件都进行了同构升级,确保能同时运行在客户端与服务器端。对于业务开发只需聚焦业务逻辑,不用特别关注运行平台,剩下的一切就交给 Saber 与 Rebas 吧~同构浏览器不再是唯一的用武之地了,从现在开始,欢迎进入崭新的全栈时代!借助于 MVP 良好的逻辑分层与众多 saber 模块的同构化努力,您的应用能无缝地同时运行在 Node 平台与客户端浏览器中,为您带来前所未有的编程体验。平台无关的代码既能运行在服务器端提供良好地 SEO 优化与首屏渲染速度,也能同时运行在浏览器中提供流畅的,无刷新、全异步交互体验。写一份代码,两处运行,不止双倍的爽快~深度响应式得利于框架的平台扩展,我们进一步扩张了响应式的意义,不仅考虑终端的屏幕尺寸,更关乎应用的整体体验,更充分地 为用户的体验服务,根据具体的前端运行环境(浏览器版本)选择最合适的运行模式,让您的应用即能为中高端浏览器提供最佳的单页面应用体验,也能充分照顾到 低端浏览器为其提供更为有效的多页面应用体验。这一切都无关业务逻辑,rebas 会默默地在幕后帮您漂亮地解决掉~ 标签:rebas

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值