Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript与Web服务器交互_Javascript_Html_Serverside Javascript - Fatal编程技术网

如何使用JavaScript与Web服务器交互

如何使用JavaScript与Web服务器交互,javascript,html,serverside-javascript,Javascript,Html,Serverside Javascript,我正在尝试使用AppWeb开源web服务器开发一个交互式聊天应用程序。 我需要有一些机制,使Web服务器能够向客户端发送更新的消息,这样当远程usre发送消息时,这些消息将在客户端自动更新 有一些方法可以使用HTML5 Web套接字和服务器发送的事件来实现这一点。 但我们只需要在HTML和JavaScript中实现它,而不需要在HTML5中实现它 因此,我需要一些池机制,将继续池我的Web服务器的新事件 那么,我应该如何使用套接字在Javascript中编写池机制。 它应该如何在服务器端实现 谢

我正在尝试使用AppWeb开源web服务器开发一个交互式聊天应用程序。
我需要有一些机制,使Web服务器能够向客户端发送更新的消息,这样当远程usre发送消息时,这些消息将在客户端自动更新

有一些方法可以使用HTML5 Web套接字和服务器发送的事件来实现这一点。
但我们只需要在HTML和JavaScript中实现它,而不需要在HTML5中实现它

因此,我需要一些池机制,将继续池我的Web服务器的新事件

那么,我应该如何使用套接字在Javascript中编写池机制。
它应该如何在服务器端实现


谢谢

已经有一些例子了。。。根据服务器端的不同,您可以选择或

如果无法使用,则必须按照旧方法,通过
窗口.setInterval
创建一个间隔,并使用例如
$.ajax()
从服务器中提取数据。我不知道除了双向连接(websocket)还有什么其他选择。。。看

正如您所要求的:
就是这样做的。基本上,它向服务器发出一个异步请求,返回xml或json或文本或。。。(随便)。当此请求返回时,将触发受支持的eventHandler,您可以对响应作出反应。您也可以使用普通的xhr,但是处理原始的xhr有点笨拙。
jQuery支持
$.ajax()
的一些速记重载,例如
$.getJSON()
$.get()

示例实现:

$.get("test.cgi", function(data){
    alert("Data Loaded: " + data);
});

还有另一种从服务器向客户端发送消息的技术。为此,您必须使用一个iframe,该iframe连接到一个不会关闭连接的PHP脚本(或您在服务器端使用的任何技术)。然后,每当必须通知客户机某些信息时,PHP脚本就会发送JavaScript消息。在每条消息之后,服务器刷新输出流,以强制执行数据真正到达客户机,并且不被某个输出缓冲区缓存。下面是加载到iframe中的PHP脚本的一个小示例代码(未测试,也不完整,只是为了说明基本内容):


函数receiveMsg(数据)
{
//对数据进行处理,例如将其发送到某个函数
//在父框架中(聊天应用程序所在的位置)
}

您好,这两个链接都提供了使用websockets的示例,websockets只能在Google Chrome上运行(因为它是HTML5规范中的)。我们需要我们的应用程序在任何浏览器上运行,因此正在寻找使用HTML4规范和JavaScipts only的选项。顺便说一句,WebSocket只能在Chrome上运行是不对的。。。您可以在任何webkit浏览器上运行websocket,opera 10.70谢谢您的回复,请您提供
$.ajax()
的示例,因为我对这个概念非常陌生。
<html>
  <body>
    <script type="text/javascript">

      function receiveMsg(data)
      {
          // Do something with the data, for example send it to some function
          // in the parent frame (Where your chat application lives)
      }

      <?php

      while (true) // You may also implement some abort state which should
                   // be checked here
      {
          $data = waitForData(); // This is your magic function on the server
                                 // which waits for data to be send to the client
          echo "receiveMsg('" . $data . "');"; // Let's say data is just a string.
                                             // You may want to use JSON instead
          flush();
      }
      ?>
    </script>
  </body>
</html>