我有一个应用程序,其中点击链接后,浏览器需要在服务器上触发某些操作,并且客户端应该能够获取其进度。SSE是这方面的好选择,但我无法在正在学习的Ember中弄清楚这一点。
我尝试使用模板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>
在页面的某个位置有一个使用
{{#link-to 'execute'}}
的链接,触发这个模板。但是,一些SSE的JavaScript代码似乎根本没有执行。问题:
1)我做错了什么?(我怀疑我不应该把JavaScript代码放在模板中) 2)有没有使用Ember JS的SSE的好例子?