2

假设我有服务器。加载包含 javascript 库的 HTML 文件的客户端将让浏览器执行脚本。这里的问题是,如果客户端的计算机速度很慢,那么处理将需要很长时间。

所以我想把处理移到服务器端。但是,不必将整个 javascript 库重写为另一种语言,我只想在服务器上运行 javascript。

谷歌搜索“服务器端 javascript”将我引导到 Node.JS,在我的想象中它有能力这样做。但是,我找不到可以做到这一点的教程。这是否意味着真的没有简单的方法可以做到这一点?例如,因为 javascript 脚本可能包含 DOM 特定的东西,例如document.getElementById(),这在服务器端没有多大意义。

4

2 回答 2

4

没有简单的方法可以简单地将 JS 的处理从客户端转移到服务器。

您需要将代码分解为必须在浏览器上运行的代码(例如,假设您不希望浏览器加载全新的页面、DOM 操作)和可以在服务器上运行的代码。

然后您需要提供一种在服务器和浏览器之间传递数据的方法,这通常通过 HTTP(使用 Ajax)来完成。

当您从客户端获取输入时,您需要在 HTTP 请求中将其发送到服务器(而不是将其作为参数传递给函数)。服务器需要读取 HTTP 请求,对其进行处理,并做出 HTTP 响应。

然后,Ajax 回调需要解析响应并在响应中运行任何客户端逻辑(例如 DOM 更新)。

请注意,网络通信时间会影响性能。

于 2013-08-15T06:58:50.400 回答
0

您不能以这种方式“合并”客户端和服务器。您所能做的就是在服务器上处理数据,然后在客户端显示它,无需任何进一步的处理。也许您应该刷新有关 HTTP 以及网站如何发送给客户端的知识。如果没有任何额外的技巧,如 websockets、comet 或 ajax 轮询,在将初始网站发送给客户端后,您将无法访问客户端。甚至可以将数据发送到客户端。

如果您想坚持使用 Javascript,Node.js 是一个不错的选择。但是,即使您需要将要处理的数据发送到服务器,也可以在那里处理并以 JSON 或“显示就绪”HTML 格式发回处理后的数据。

于 2013-08-15T07:01:16.510 回答