7

我有以下情况。一位客户使用 JavaScript 和 jQuery 创建一个复杂的网站。我们希望在服务器 (IIS) 上使用 JavaScript 和 jQuery,原因如下:

  1. 技能传授——我们希望在服务器上使用 JavaScript 和 jQuery 而不必使用例如 VB 脚本。/经典asp。.Net framework/Java 等因此被排除在外。

  2. 改进的搜索/可访问性选项。我们希望能够使用 jQuery 作为模板系统,但这对于搜索引擎和关闭 js 的用户来说是不可行的——除非我们可以有选择地在服务器上运行此代码。

对 IIS 和 Windows Server 进行了大量投资,因此无法进行更改。

我知道您可以使用 windows 脚本主机在 IIS 上运行 jScript,但不确定可伸缩性和围绕此的过程。我也不确定这是否可以访问 DOM。

这是一张图表,希望能解释这种情况。我想知道是否有人做过类似的事情?

编辑:我不是在寻找网络架构的批评者,我只是想知道在将页面发送到客户端之前是否有任何选项可以使用 javascript 来操作页面的 DOM。Jaxer就是这样一种产品(没有 IIS)谢谢。

4

7 回答 7

6

看看将浏览器带到服务器Rhino使用 Microsoft 的 IIS 作为 Java servlet 引擎

第一个链接来自 John Resig(jQuery 的创建者)的博客。

2011 年 8 月 2 日更新

Node.js 即将登陆 Windows。

于 2010-05-03T18:04:32.927 回答
2

在服务器上重用客户端 JS 的想法可能听起来很诱人,但我不确定 jQuery 本身是否已准备好在服务器环境中运行。

您将需要通过初始化以某种方式为 jQuery 定义全局上下文window, document, self, location, etc.。我不确定它是否可行。

此外,正如 Cheeso 所提到的,Active Server Pages 是一种非常过时的技术,它在本世纪初被微软替换为 ASP.Net。我曾经使用 ASP 3.0 维护旧系统一年多,这很痛苦。最美妙的消遣是调试:今天你几乎找不到任何用于此目的的东西,并且必须描述 IIS 日志中的漂亮错误:

错误“800a9c68”
应用程序定义或对象定义错误

不过,我可以确认我设法重用了客户端和服务器 JScript。但这是我编写的代码,我知道它将在服务器上使用。

PS我不建议那样移动。有很多编写 HTML 和 JavaScript 的人熟悉的模板框架。

于 2010-04-27T12:03:29.350 回答
1

JScript 通过称为 ASP 的东西在 IIS 上运行。
活动服务器页面。
它于 1996 年首次推出。

最终,ASP.NET 作为继任者被引入。但是仍然支持 ASP。

但是,HTML 页面没有 DOM。

您可能需要重新考虑一下您的架构。

于 2010-04-27T08:43:20.687 回答
1

我认为您可能会找到的唯一可行的解​​决方案是将 IIS 放在 Java 前面。我知道有两种类似浏览器的环境是为 Java 编码的:

1)Env-js(见http://groups.google.com/group/envjshttp://github.com/thatcher/env-js)我相信这个有来自 jQuery 的 John Resig 的贡献,并与考虑到 jQuery 测试/支持。

2) HTMLUnit (见http://htmlunit.sourceforge.net/ ) 这个比较老,最初不是围绕 jQuery 构思的,但是有报道说使用它成功运行 jQuery 的测试套件 ( http:// daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/)。

如果您想要纯 IIS/MS,我认为您对 windowsScript 主机和/或半废弃的 JScript.NET 之类的观察可能与您即将到来的一样接近,以及一个端口(您的可能必须开始)诸如 Env-js 或 HTMLUnit 之类的东西。

另外,我不知道您是否看过 Wikipedia 列表中的服务器端 JavaScript 解决方案:

http://en.wikipedia.org/wiki/Server-side_JavaScript

最后......您可能可以用任何已经具有某种 DOM 库和一流函数(或者,如果没有该eval工具)的语言编写一个可服务的类 jQuery 库。例如,参见 Perl 的 pQuery ( http://metacpan.org/pod/pQuery )。这将使您受益于 jQuery 样式操作文档的好处。技能转移很棒,JavaScript 将非常好的特性完美地融合在一起,但另一方面,拥有足够关心学习多种语言的开发人员也很棒,而且 js 并不是唯一的好语言。

于 2010-05-03T18:38:02.117 回答
0

我认为它主要是基于浏览器的脚本,因此您可能最好使用基于 VB 或 .NET 的技术来执行或从模板生成 HTML。我敢肯定有,因为在 java 世界里有一些这样的(比如速度)。然后,您将使用 jQuery 来创建或添加客户端功能和可用性,从而使网站比以前更有用。

于 2010-04-27T08:34:44.047 回答
0

你到底是什么意思

“一位客户使用 JavaScript 和 jQuery 创建一个复杂的网站”

jQuery 的一半意义在于使开发人员可以轻松地操作 DOM,从而为网站添加交互式增强功能。通过在服务器上运行 Javascript 并仅呈现 HTML,您将失去添加这些增强功能的能力,而无需往返于服务器(想想 WebForms 回发模型......呃)。

现在,如果您真正的意思是客户使用基于 jQuery 的站点构建器,为什么不首先让该工具输出纯 HTML?

于 2010-04-27T09:09:36.233 回答
0

看看这项技术。您可以调用脚本在服务器、客户端或两者上运行。另外,这确实在服务器上实现了 Firefox 引擎。看看它。

Aptana 的 Jaxer 是迄今为止第一个 AJAX Web 服务器。我还没有尝试过,但我会的。看起来很有前途而且非常强大。

于 2011-04-07T09:14:43.200 回答