Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[概念]同构JavaScript应用 #4

Open
coxo opened this issue Dec 24, 2015 · 0 comments
Open

[概念]同构JavaScript应用 #4

coxo opened this issue Dec 24, 2015 · 0 comments

Comments

@coxo
Copy link
Member

coxo commented Dec 24, 2015

前言:

在之前的几次组织内部讨论中,会偶尔提到同构直出的概念,上次地瓜小V,还在聊他们鹅厂内部,目前项目应用的方式,同构+直出,这里我们先聊一下,同构的概念,以便大家参阅。
这篇小记,只是一篇小小记哦。

概念:

Javascript现在是一个同构的语言,同构的意义就在于任何一段代码(当然有些特殊代码例外)都能同时跑在客户端与服务器端。

你可否想到,一个应用可以在客户端或者服务端快乐的运行。是不是很玄。
理论上,应用可以根据设备的速度和带宽能力来实现不同等级的客户端/服务器处理。
但是,太复杂。很少项目能够在实现共享视图基础之上更进一步,而且标准渐进增强不起作用的情况也不多。
后期我们会谈一些目前存在的一些模式,看看他们是怎样实现的,另外也谈谈它们为什么对于真正同构的Javascript而言还不够好。

总结下几点

  • 基于 JavaScript 编写
  • 可以在客户端和服务端运行
  • 只需要写一次代码,就可以在服务端渲染静态页面,还可以在客户端完成复杂的交互
  • 这种方式互通了两个世界

框架例子:

Meteor是一个开源 JavaScript 框架,专注于实时 web 应用,基于 Node.js 编写。

现在越来越多的公司将 Node.js 应用到他们的产品中。客户端和服务端的代码共享成为一个更加普通而自然的选择。
这也就不可避免会有更多的应用开始在前后端共享代码。 最重要的是要记住 “同构JavaScript”是一个范围 — 它开始只能共享模板,之后管理整个项目的视图层,再到大多数应用的业务逻辑层。事实上JavaScript代码共享在前后端是要取决于你的程序设计,以及它的独特约束。

web开发的未来

有些类库通过共享模板又增强了这一趋势,比如 React

介绍了同构JavaScript应用的概念,它是应用开发的一种全新方式,可以最大限度地结合服务端和客户端应用程序。

个人感想:

考虑到客户端和服务器上不同类型的逻辑,我不确定完全的同构应用是否具有实用性或者可行。但是,环境无关的库可以消除对相同功能编写两份代码的痛苦。

参考:
http://www.sitepoint.com/isomorphic-javascript-applications/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant