2013-10-04 159 views
0

好的,我在这里再次提出另一个问题。在服务器端运行jQuery代码?

首先:是否有任何解决方案替代Node.js,我们可以在共享主机上使用/安装?

第二:是否有可能在服务器端运行简单的jQuery代码?假设我们正在使用此代码:

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

我怎样才能运行此代码“服务器端”所以,一旦用户1点击了#myButton,其观看同一页面的用户2也将看到应用到#myDiv粉扑效果实时?

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

任何帮助将是伟大的。

+1

在服务器上运行jQuery代码确实没有意义。事情并不那么奏效。你必须使用某种网络解决方案,无论是HTTP(ajax)还是Web套接字,并且服务器代码看起来都不像客户端代码。 – Pointy

回答

0

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

+0

但我不想将任何内容保存到数据库中!那么,如何使用flag true等来运行我的jQuery代码呢? – user2808228

+0

如果不将它保存到某个地方,你无法做到这一点。如果你的情况是显示相同的用户,那么你可以使用会话,cookie等。 –

+0

好的没有太多的帮助/答案。 – user2808228

0

是的,你听到了,你需要为每个客户端使用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. 
+0

所以这意味着我们需要4个用户的4个Ajax调用和4个用户的8个Ajax调用,等等。如果是这样,是不是会让服务器承受压力? – user2808228

+0

是的,在先进技术中你可以使用推送通知HTML5,在这里你不需要定期刷新,服务器会在有变化时通知你 – sudhAnsu63

+0

那么你的解决方案是错误的!或者我应该说一个非常糟糕的方法! – user2808228

0

如果你想runrealtime你的代码,那么你应该使用socket.io

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

+0

可以在共享服务器上使用socket.io吗? – user2808228

0

实时通信需要服务器和客户端之间的双向通信。由于Web客户端只能发送请求,但没有收到,所以这不是那么简单。有许多的技术,达到这样的效果(谷歌他们了解更多信息):

  • 轮询(最简单的一个)
  • 长轮询
  • 网络插座
  • BOSH

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

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