use*_*790 3 javascript server-sent-events ember.js
我有一个应用程序,在该应用程序中,单击链接时,浏览器需要触发服务器上的某些内容,而客户端应该可以获取进度。SSE是一个很好的候选者,但是我无法在余烬(我正在学习)中弄清楚。
我尝试使用模板execute:
<script type="text/x-handlebars" data-template-name="execute">
<script>
if(typeof(EventSource)!=="undefined") {
var source=new EventSource("/execute/flow");
source.onmessage=function(event) {
if(event.data == 'end') {
source.close();
}else{
document.getElementById("flow_result").innerHTML+= event.data + "<br>";
}
};
} else {
document.getElementById("flow_result").innerHTML="Sorry, your browser does not support server-sent events...";
}
}
<script>
<script>
Run Code Online (Sandbox Code Playgroud)
页面上的某处有一个链接,使用{{#link-to 'execute'}}该链接可以触发此模板。但是以某种方式根本不执行此SSE javascript。
问题:
1)我在做什么错?(我怀疑我不应该将javascript代码放到模板中)2)是否有将SSE与ember js一起使用的良好示例?
不要在模板中传递代码。在应用程序的控制器和路由中处理您喜欢的任何操作。对于sse,您可以执行以下操作:
App.ApplicationController = Ember.Controller.extend({
init: function() {
var eventSource;
eventSource = new EventSource(your-event-source);
return eventSource.addEventListener(your-event-to-listen, function(e) {
var data;
return data = $.parseJSON(e.data);
//Do whatever else you want in here with your data
});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |