我刚刚开始试验 时至Jaxer 服务器的端javascript引擎我的下一个项目。我有几个问题有关,

  • 通过使用服务器侧JS,我们可以实现整个网络应用程序,而不使用任何服务器方语言(例如C#、java等)。或服务器侧JS坐在之间的网络服务器和其他语言堆。

  • 这真的是一个更好的办法??

  • 什么是advandages和disadvandages?

  • 这是如何运作良好,在条款的性能吗?

  • 是否有任何现实时间执行情况(公众网站)只使用服务器侧JS(没有其他语言)?

  • 有什么选择提供了时至jaxer(open source)??

  • 我们如何可以实现&maitain db交易?我们可以这样做,在服务器端JS..?

  • 是否有可能制定宁静和肥皂服务在服务器端JS..??

我知道这太长(和幼稚的问题).我只是希望有人已经遇到的所有这些在实现服务器端JS。

编辑:

因为每次马修和肯的评论,我们添加一些澄清的问题 这真的是一个更好的办法??

这就是我打算请..

这真的是一个更好的办法比使用服务器方语言(假设c#),我们如何可以比较这c#执行一个网站(性、语言特征)??和其中一个是一个更好的办法,使用JS独自一人在服务器端或JS在中层之间的其他语言堆和网络服务器??

有帮助吗?

解决方案

我的开发 家八哥 (www.mynajs.org),一个开放源服务器侧JS平台的基础上犀牛和Java。我会处理的问题,因为它们涉及到家八哥,但是许多这点适用于服务器的端JS在一般情况:

通过使用服务器侧JS,我们可以实现整个网络应用程序,而不使用任何服务器方语言(例如C#、java等)。或服务器侧JS坐在之间的网络服务器和其他语言堆。

在家八哥可以写你的整个程序在JS。家八哥已经包括API的数据库访问,对象关系映射,crytogrophy,OpenID,等等。

这真的是一个更好的办法比c#/Java?

与犀牛的基于服务器的是微不足道,下降到Java每当需要。你可以很容易地安装开放源/商业/手工编码Java库,然后脚本,他们从JS。这意味着你得到的快速发展的JS,但保持优势的平台

有哪些优点和缺点?

赞成:

  • 迅速发展:在家八哥,你刚刚创建文件的安装与。圣雅各福群扩展。这意味着你可以创建一个编辑-省-刷新,浏览器循环速度非常快调试/调整的代码。

  • 容易JSON:具有JS支持服务器的端手段的移动复杂的结构是很容易的

  • 共享码:如果你需要执行相同功能的同时在服务器和浏览器,可以使用相同的代码

  • 动态奥姆:静态类型的编制语言,使它难以改变物体在运行时间。这通常意味着对象已是定义中前进。在家八哥建筑奥姆一样简单

    var manager =new Myna.DataManager("DataSource name").getManager("table name");
    

    你会得到一个对象可以做的所有基本的污物的操作而没有明确定义的数据库表。作为另一个例子你可以插入一个排所有的匹配值,从一种形式员额:

    manager.create($req.data);
    
  • 编程功能:如果你已经开始播放高级JavaScript的功能,那么你会理解如何帮助他们服务器的一侧。因为一致的服务器的端环境是安全的使用先进的功能,例如 阵列设施, 发电机和迭代, 解构分配, , E4X

缺点:

  • 工具:静态型的语言,如C#和Java有优秀的IDE和开发的工具。动态的语言,如JS只是没有工具的支持。我个人觉得大减少代码和模糊的类型铸造成了对于这一点,但这仍然是一个很大的缺点如果你已经做了很多发展中Ide。如果你是目前使用IDE,考虑使用 jedit 为动态语言

  • 成熟/标准化:服务器端JS仍然是一个新的范例,并有很多球员并没有明确的优胜者。通信机制详解没有任何标准,用于服务器端JS。正如在布兰登的答案, CommonJS 小组试图形成一个服务器端JS标准和家八哥已实验CommonJS支持通过 独角鲸

这是如何运作良好,在条款的性能吗?

在原的计算速度,几个动态的语言可以比赛静态类型的编制语言,如C#和Java。有的说,它并不重要。任何应用程序的一部分,为计算集中的可能应该被写在爪哇,或者使用现有的Java图书馆。我不会建议任何人都编写一个数据库在JS的实例。对真实的世界网络应用程序/SOA服务,主要原因的速度下降不是原计算的速度,这是效率低下的代码,尤其是数据库的访问。家八哥有助于这一通过这样的东西,如:

  • 国内高速缓存编JS脚本
  • 在内部使用缓存编制的报表数据库的交易
  • 查询和输出碎片缓存
  • 数据库连接池
  • 自动ETag哈希支持
  • 分析工具
  • 懒载的元数据

我们如何可以实现和维护db交易?我们可以这样做,在服务器端JS..?

如果你的意思是交易作为在"一组SQL声明,可以扭转或承诺",然后家八哥还不支持的交易。我打开来实现这一点,如果有足够的兴趣。

如果你的意思是"什么样的数据库支持服务器的端JS有?",那么答案是平台的依赖。这家八哥平台提供了以下数据库的特点:

  • 一个基于网络的管理应用程序,其中可以界定"数据源",i。电子数据库连接的信息。然后你可以查询这些数据源的名字。家八哥包括JDBC驱动程序H2,MySQL,Microsoft SQL服务器,并Postgresql,但任何JDBC或ODBC数据源可以用
  • 家八哥.数据库家八哥.表 提供数据库中立元数据的访问以及表格创建和修改。
  • 家八哥的 查询 目支持maxRows、寻呼、SQL参数,定义的行处理程序,查询的查询,缓存和更多的
  • 家八哥的 数据管理器 目支持运行时的对象对象的创造

是否有可能制定宁静和肥皂服务在服务器端JS..??

休息和肥皂支持平台的具体特征。家八哥的 服务 目支持以下协议:

  • 肥皂
  • XML-RPC
  • 星RPC
  • Ext直接
  • 书家八哥 (一个简单的协议,使用正常的形式员额和返回手机中。容易使用浏览器)

家八哥还了解到的投入,并请求删除方法,并提出访问请求的主体内容在文字和二进制形式,使它能够处理这些宁静的方法在一个特定应用的方式。

调试

传统断点调试是一个真正的挑战,服务器端.虽然犀牛支持调试器钩,使用这些从一个无国籍的网应用程序将是漂亮的参与。我甚至不使用断点调试器,甚至当他们提供(例如萤火虫).而不是我喜欢的记录。

在家八哥,

 Myna.log(type,label,detail)

将产生较低优先的线写一HTML日志消息家八哥的记录数据库。这些记录可随后搜查了通过家八哥管理员。日志记录的时间戳和毫秒的经过分析的目的。家八哥.dump(obj)也可使用本HTML表表示的任何物体。家八哥还记录所有联合国处理的例外情况,堆叠的痕迹,源代码的方面,并要求详细信息。之间的转储()、日志(),和默认的错误处理程序我没有太大的困难调试家八哥代码

其他提示

通过使用服务器侧JS,我们可以实现整个网络应用程序,而不使用任何服务器方语言(例如C#、java等)。

它不应该是有必要编写代码,在任何其他语言,虽然许多服务器的端JavaScript框架使用犀牛的引擎,它允许你打电话给任何Java代码。

这真的是一个更好的办法??

我不认为JavaScript(作为一种语言)是真的有更好或更糟糕的选择,而不是传统的服务器方语言。它具有的优点(以及与其他动态的语言,如红宝石和Python)如灵活性、快速原型(没有刻意的双关)、灵活性,等等。另一方面,它没有图书馆的支持,Java和C#有或静的打字(我不会获得进入的辩论是更好地在这里;我喜欢两种不同的原因)。

如果你想要最好的两个,你可以使用JavaScript作为一个脚本语言、嵌入你的应用程序。犀牛Java,JScript.NET 很容易操纵的"本地"的对象在JavaScript。你可以,例如,写你域中的类Java或C号和脚本,他们与JavaScript你想要更大的灵活性。如果你足够舒适用JavaScript,写在一个单一的语言可以更为简单。

我从来没有写入一个"真正的"服务器的端应用程序的使用JavaScript,所以我真的不能做出判断,关于是否其更好或更坏。净的(我也从不用JScript.NET).我已经打了一些框架有趣,虽然和我目前正在重写我的个人网站使用区NG。到目前为止,这是一个很好的经验(比PHP,这我从没真正喜欢).

什么是advandages和disadvandages?

Advantanges:

  • 只有一种语言所需的服务器和客户端程序。
  • 可能共用的代码,对于像形式验证。Jaxer让你跑脚本上客户、服务器,或两者。
  • 你得到的节目中JavaScript(假设你喜欢的语言)。

缺点:

  • 许多框架是实验/不是非常成熟。
  • 你必须程序在JavaScript(假设你不喜欢的语言)。

这是如何运作良好,在条款的性能吗?

性能,应大约相当于其他的脚本语言。

是否有任何现实时间执行情况(公众网站)只使用服务器侧JS(没有其他语言)?

我不知道有任何大型网站使用JavaScript,但也有可能是一些。

有什么选择提供了时至jaxer(open source)??

维基百科有一个 大名单的选择, 但它没有很多有用的信息。有很多的选择,具有广泛成熟度和大小。

这里有几个我熟悉的(不同程度)

  • -犀牛(Java)为基础的框架,有活动记录。
  • 区NG -区下一代(实验改写,在积极发展)。
  • 火卫一 -具有良好支持 //需要将物品寄.
  • v8cgi -小型和简单的,使用谷歌的V8发动机,很可能不生产-准备好。
  • Jaxer -运行在Spidermonkey与DOM执行,所以你可以操纵的网页与框架,如jQuery或原型。具有良好的IDE支持在时至工作室。

我们如何可以实现和维护db交易?我们可以这样做,在服务器端JS..?

犀牛框架让你使用Java类,所以你必须充分JDBC支持。我没有用Jaxer的数据库的图书馆,所以我不知道任何关于它的能力。

是否有可能制定宁静和肥皂服务在服务器端JS..??

宁静的Api不应该有任何问题。我不知道的任何具体的支持肥皂,但它应该是 可能的.

作为一个前言,我使用SSJS在我的日常工作。我们运行的一个相当大的(在条款的复杂性以及页面浏览)的网站上SpiderMonkey.我将添加到《马太福音的极好的回答,我有经验。

这真的是一个更好的办法比使用服务器方语言(假设c#)

"更好的" 真的取决于你想要做什么。JavaScript本身具有一些强大的功能,以及很可怕的。如果你是认真的关于发展中JS(客户或服务器),我无法建议高度不够,你看道格拉斯Crockford的介绍, Javascript:好的部分 如果你已经没有。他做了出色的工作,分拣出令人讨厌的,他是个优秀的演讲者引导。

最重要的事情,我找到SSJS世界缺乏的就是成熟度。我不熟悉,但JavaScript有没有成熟的标准图书馆,并没有成熟的手段,包分发。对我来说这是一个很大的一块拼图。

这就是说,保持你的眼睛 CommonJS 小组。他们正在朝着确定那些确切的事情。此外,Jaxer Api文件列出了建件,包括与这一框架。

这是如何运作良好,在条款的性能吗?

JavaScript本身不是一个缓慢的语言,它也不是一个特别快的一个。作为马太福音指出,应该比任何其他的脚本语言,将使用。战争之间的浏览器供应商,看看谁可以建立最快速的浏览器将受益SSJS人群。

该代垃圾收集的V8团队建设成他们的动机是一个很好的例子。停止虚拟机,以免无法访问的对象堆和收回他们的记忆可能有些缓慢,但他们已经减轻,通过减少量对象的需要被检查时的垃圾收集器运行。

我们如何可以实现和维护db交易?我们可以这样做,在服务器端JS..?

Jaxer似乎有MySQL和源码数据库Api。作为马太福音所提到的,如果使用犀牛,你可以使用JDBC api。

编辑:增加了链接

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top