【问题标题】:Run jquery code on server side?在服务器端运行 jquery 代码?
【发布时间】:2013-10-04 12:09:38
【问题描述】:

好的,我又来问另一个问题了。

首先:有什么解决方案可以替代我们可以在共享主机上使用/安装的 Node.js?

第二:是否可以在服务器端运行一个简单的 jQuery 代码?假设我们正在使用这段代码:

<script>
$( '#myButton' ).click(function() {
$( "#myDiv" ).effect( "puff", "slow" );
$( "#myDiv" ).toggle( "puff" );
});
</script>

如何在“服务器端”运行此代码,这样一旦用户 1 单击 #myButton,查看同一页面的用户 2 也会实时看到应用于 #myDiv 的粉扑效果?

我知道这可以通过 AJAX 以某种方式完成,但我尝试/找到的所有 AJAX 解决方案都是针对一个用户 (User1) 的,而其他用户将无法实时看到它。

任何帮助都会很棒。

【问题讨论】:

  • 在服务器上运行这样的 jQuery 代码真的没有意义。事情就不是那样的。您必须使用某种网络解决方案,无论是 HTTP (ajax) 还是 Web 套接字,服务器代码看起来都不像客户端代码。

标签: javascript php jquery ajax


【解决方案1】:

用户 1 和用户 2 是两个不同的浏览器和会话。所以会话、cookie 等不会帮助你。我不知道你为什么要尝试这样的事情,但如果你坚持你可以使用数据库并在 user1 之后设置一个标志为真,如果标志为真则显示其他用户...... 我没有看到任何其他方法可以轻松完成您想做的事情。

【讨论】:

  • 但我并没有尝试将任何内容保存到数据库中!那么如何使用 flag true 等来运行我的 jquery 代码呢?
  • 如果不将其保存到某个地方,您将无法做到这一点。如果您的情况是显示相同的用户,那么您可以使用会话、cookie 等。
【解决方案2】:

是的,你没听错,每个客户端需要使用 2 个 ajax 调用。

1.When user clicks some thing update the id  or some value in database using ajax.

2.Call one ajax call repeatedly in some time interval and get the saved value in database to clientside, check the value and show the animation accordingly.

【讨论】:

  • 所以这意味着我们需要 4 个 ajax 调用 2 个用户和 8 个 ajax 调用 4 个用户等等等等?如果是这样,那不会给服务器带来压力吗?
  • 是的,在高级技术中你可以使用HTML5的推送通知,这里你不需要定期刷新,服务器会在有变化时通知你
  • 那你的解决方法就错了!或者我应该说一个非常糟糕的方法!
【解决方案3】:

如果你想在realtime 上run 你的代码,那么你应该使用socket.io

Socket.IO 旨在使每个浏览器和移动设备中的实时应用程序成为可能,模糊不同设备之间的差异 运输机制。它在 JavaScript 中是 100% 无忧实时的。

【讨论】:

  • 可以在共享服务器/主机上使用socket.io吗?
【解决方案4】:

实时通信需要服务器和客户端之间的双向通信。由于 Web 客户端只能发送请求而不能接收,所以这并不简单。有许多技术可以实现这种效果(谷歌他们以获取更多信息):

  • 轮询(最简单的一种)
  • 长轮询
  • 网络套接字
  • BOSH

您也可以使用其他一些双向通信协议(不是 HTTP),例如 XMPP。

我认为最简单的解决方案是使用Pusher。如果您期望超过 20 个连接,他们的服务不是免费的,但是在每种项目中进行双向通信都是小菜一碟。

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多