javascript - Opera 10 中的 x-dom-event-stream 仅适用于第一个事件

标签 javascript opera event-stream

我有一个 python 脚本(在 CherryPy 框架中),它发送 Event: 和 data: 文本,如下 Opera blog post向客户端浏览器描述。接收 x-dom-event-stream 内容的 javascript 与博客文章中显示的内容几乎相同。但是,浏览器仅显示发送的第一个事件。有人知道我错过了什么吗?

我尝试了几个旧版本的 Opera,发现它可以在 Opera 9.52 中运行,但不能在任何较新版本中运行。他们改变了什么?

这是Python代码:

class dumpData(object):
  def index(self):
    cherrypy.response.headers['Content-Type'] = "application/x-dom-event-stream"

    def yieldData():
      i = 0
      while 1:
        yield "Event: count\n"
        yield "data: "
        yield i
        yield "\n\n"
        i = i + 1
        time.sleep(3);

    return yieldData()

index._cp_config = {'response.stream': True}
index.exposed = True

这是 javascript/html。向/data/发出请求会运行上面的 python 函数。

<head>
  <script>
    onload = function() { 
      document.getElementById("count").addEventListener("cout", cout, false);
    }
    function count(e) {
      document.getElementById("stream").firstChild.nodeValue = e.data;
    }
  </script>
  <event-source id="count" src="/data/">
</head>
<body>
  <div id="stream"></div>
</body>

在 Firefox 中打开直接/data/url 会将流保存到文件中。所以我知道输出的格式正确并且流完全可以工作。

最佳答案

这是一个错误。抱歉:-/

(郑重声明:Opera 不幸关闭的错误跟踪器中的 CORE-28592。)

关于javascript - Opera 10 中的 x-dom-event-stream 仅适用于第一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916921/

相关文章:

javascript - Javascript 中的窗口 ['Map' 是什么意思

javascript - AngularJS:如何仅在设置 $scope.var 后才在 View 中设置 $scope.var?

html - Opera Mini 像开源软件一样

css - Opera 在带有 contenteditable 和 twitter bootstrap 的文档中添加了奇怪的间距,为什么?

elasticsearch - AWS Elasticsearch 作为事件存储

javascript - 需要强制从不是通过单击按钮启动的 Javascript 回发

javascript - 如何使用不带文件名参数的 multer 以多部分/表单数据内容类型发送应用程序/八位字节流数据?

javascript - HTML5 <video> 元素在 Firefox、Opera 和 Safari 中不起作用

sql - "Sessioning"事件流

http - 如何仅通过一个 HTTP 请求从事件存储流中获取最后一个事件?