您要做的是将重定向URL作为最后一个事件发送-您仍然需要使用JavaScript进行重定向,但是您无需再对路径进行硬编码:
def import_progress():
"""
Just a small example
"""
for number in range(1, 101):
sse_id = str(number)
sse_data = str(number)
sse_event = 'import-progress'
if number == 100:
sse_event = 'last-item'
sse_data = url_for('product_list')
yield "id:{_id}\nevent:{event}\ndata:{data}\n\n".format(
_id=sse_id, event=sse_event, data=sse_data)
然后,您的最后一项处理程序将变为:
source.addEventListener('last-item', function(event) {
source.close();
redirect(event.data);
}, false
);
并redirect
变得简单:
function redirect(url) {
document.location = url;
}