是否有JavaScript替代编写客户端Web应用程序代码?

时间:2011-04-14 15:03:44

标签: javascript web-applications

我想在没有javascript的情况下编写我的xhtml Web应用程序。

创建交互式xhtml Web应用程序有哪些替代方法?

也许java applet执行javascript的任务?

还是有另一种方式吗?

感谢您的帮助!

Javascript很难调试,是动态类型的,奇怪的OOP,当该语言被切割为在浏览器中工作时,可以被任何其他语言替换。

我还希望在我的代码中有一些类型安全,可以在运行代码之前发现许多错误。

- 编辑2 -

查看http://www.scala-js.org/

--- --- EDIT

所以现在没有真正的javascript替代方案,灵活,广泛和适用。 我认为适用的是将一种语言编译为另一种语言的框架/工具,如GWT或coffescript。

感谢您的详细解答。我的问题的原因是,Web开发每天都变得越来越复杂。我更喜欢像Java这样的语言来实现稳定的错误概述和类型安全。另一方面,JavaScript(在我看来)的方式很神秘,难以调试(浏览器不兼容,无声错误,不直观的操作数,动态类型......)。我用JS开发了多年的网站,由于这些调试问题和代码管理,我觉得很糟糕。然而,这些图书馆非常强大,可以轻松完成大部分工作。

11 个答案:

答案 0 :(得分:7)

要拥有一个交互式网站,您需要能够在客户端计算机上执行代码的内容。

这是(目前)通常是JavaScript。在过去,这也包括Flash或Silverlight(两者现在都在减少)。

JavaScript具有很大的优势,因为它可以直接轻松地操作HTML元素。虽然可以通过Silverlight实现这一点,但它并不像Silverlight主要用于构建自包含对象那么容易。

答案 1 :(得分:6)

Google Web Toolkit GWT 可让您编写编译为客户端xhtml + javascript的java代码。它放弃了基于页面的标准Web方法,以实现更类似桌面的交互(如果我没记错的话,API有点类似于许多桌面窗口工具包)。

您可以(但不必)开发(java)服务器逻辑,并为编译器提供一些客户端 - 服务器通信。

查看http://code.google.com/intl/it-IT/webtoolkit/

答案 2 :(得分:3)

一些JavaScript替代方案:

这不是推荐,只是一个列表。

如果您真的对JavaScript过敏,那么有许多框架可以让您编写服务器端代码,为您生成JS,正如其他答案所提到的那样。

答案 3 :(得分:2)

查看Google Dart - 它最近已达到1.0,并且几天前已开始标准化过程(ECMA TC52)。它还通过高度优化的dart2js转换器与当前可用的浏览器兼容,因此您可以立即开始使用它:)。比IMO更加理智的语言。

更多信息可以在官方网页上找到更多信息:https://www.dartlang.org/(工具,文档,示例代码,教程),YouTube上还有精彩的介绍性视频:http://www.youtube.com/watch?v=FqsU3TbUw_s

答案 4 :(得分:1)

除了applet,你还有Adobe Flash,Microsoft Silverlight,很快就有Chrome NACL。这些都不像JavaScript那样与JavaScript无缝地交互。

答案 5 :(得分:1)

您可以做的一件事就是让服务器端代码完成所有处理。你只限于只有CSS可用于交互,但你仍然可以通过加载新页面来做所有事情。

答案 6 :(得分:1)

如果您正在考虑使用Java applet,那么我想有必要提一下Flash和Silverlight(*)。

当然,有些“交互式”Web应用程序不使用javascript ......它们使用回发。但我不认为这就是你的意思。

如果您只想定位Internet Explorer,可以使用VBScript(Microsoft专有的javascript)甚至ActiveX。但我怀疑这也是你的意思。

所以你有责任回答 - 为什么不是 javascript?

(*)我想。

答案 7 :(得分:1)

如果它在客户端的计算机上运行并且可以修改DOM,它可以工作。 JavaScript是最广泛支持的,因此它可以为许多人提供开箱即用的功能。

基本上,任何函数之类的东西都可以代替它。

  1. Flash基本上可以执行JavaScript所能实现的所有功能(图形化,但不能修改DOM),但如果用户没有安装Flash Player,那就太不方便了。
  2. Java也可以工作,但同样的概念适用:如果用户没有JRE(或类似的机器)
  3. Silverlight与Flash类似,但支持得少得多(我几乎无法在Linux机器上运行)
  4. 只是好奇:你为什么要用别的东西替换JavaScript?

答案 8 :(得分:1)

我很想知道你不想使用Javascript的原因是什么?这个问题的答案将对你的问题应如何回答产生重大影响。

Javascript语言实际上非常强大。是的,它确实有一些怪癖,但所有其他语言也是如此。在浏览器中使用Javascript开发的许多感知“问题”实际上是人们在使用DOM而不是Javascript本身时遇到问题。另一方面,DOM会出现许多缺点和跨浏览器问题。

如果这就是你的问题所在,那么你可能最好使用JQuery这样的Javascript库,它抽象了很多对DOM的直接访问,并解决了很多跨浏览器的问题。 / p>

如果您正在使用最新的浏览器,那么现在可以使用CSS完成许多以前需要Javascript的简单效果。下拉菜单,标签集,淡入淡出,旋转和过渡效果。所有这些都可以通过CSS完成。然而,它们中的大多数都是新的,并且在目前常用的所有浏览器中都不可用,所以最好暂时坚持使用Javascript至少其中一些。即使它们已经准备好主流使用,你仍然需要一些Javascript来将它们连接在一起。

如果您确实非常渴望使用Javascript以外的语言进行开发,那么正如您已经指出的那样,在Web上进行编程还有其他选项,例如Java applet。还有ActiveX控件,Flash和Silverlight以及其他一些。但是,它们都不像Javascript那样普遍适用于所有用户。

所有这些插件都需要各种浏览器插件,并且所有这些插件都存在与不想安装它们的用户或不允许安装它们的公司环境有关的问题。对于像ActiveX这样的技术,它们可能仅在某些浏览器和操作系统上可用,并且(再次像ActiveX)它们通常存在安全问题。

首先,大多数其他技术存在的唯一真正原因是填补了当时浏览器功能的空白。所有这些功能问题现已得到解决 - 由Javascript,Flash和Silverlight驱动的HTML5和相关技术已经过时; ActiveX控件很久以前就被认为已经过时了;你最后一次看到主流使用的Java applet是什么时候?

最重要的是,浏览器世界正在快速移动远离除Javascript之外的任何客户端代码,并且有很好的理由。

答案 9 :(得分:1)

使用睡衣(谷歌),你可以编写正常的python代码并将其编译为javascript,这样你就可以获得两全其美,python的强大功能和表现力以及无处不在的javascript。

另外,请关注Adobe的Falcon项目,它是一个实验性编译器,它将actionscript 3(一种非常强大的语言与普通javascript相比)和flex框架转换为javascript。

您也可以尝试使用Google的GWT,其中java用作客户端构建代码(是的,它也会被编译为本机javascript)。

答案 10 :(得分:-2)

这可能看起来很无聊,但我实际上喜欢使用jQuery比JavaScript更好。它使事件处理和Ajax非常简单。