【发布时间】:2011-04-21 23:45:04
【问题描述】:
我正在尝试在我的应用程序中实现 comet,但对 JavaScript 缺乏经验,我不知道如何在客户端进行操作。
当服务器收到请求时,它只是保持打开状态并在必要时向其写入数据:
def render_GET(self, request):
print "connected"
request.write("Initiated\r\n")
reactor.callLater(random.randint(2, 10), self._delay, request)
return NOT_DONE_YET;
def _delay(self, request):
print "output"
self.count += 1
request.write("Hello... {0}\r\n".format(self.count))
reactor.callLater(random.randint(2, 10), self._delay, request)
到目前为止,我一直在客户端使用 jQuery,但我不知道如何使它与服务器一起使用。 I've been looking at the jQuery.AJAX documentation 并且没有一个回调说“嘿!我刚刚收到了一些数据!”,他们只说“请求已完成”。
我认为dataFilter() 函数是我想要的,因为它可以让您在请求完成之前处理原始数据,但它只允许您在请求完成之前执行它只是,而不是您收到数据。
那么我怎样才能通过一个开放的请求连续接收数据呢?正如您在 python 示例中看到的那样,每条数据都以\r\n 分隔,因此我希望 JavaScript 的行为类似于线路接收器。 jQuery 可以做到这一点,还是我必须直接使用 XMLHttpRequest/ActiveXObject?是否有可用的(简单、轻量级)库为我实现线路接收器?
我希望了解现有的库和如何自己实现它,因为到目前为止我在彗星库上运气不佳,此时我希望只需编写我需要的代码,而不用为整个库而烦恼。
【问题讨论】:
标签: javascript jquery comet