浏览代码

Experiments: HTTP streaming render

Manu Mtz-Almeida 10 年之前
父节点
当前提交
421793bfba
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14 0
      context.go

+ 14 - 0
context.go

@@ -375,6 +375,20 @@ func (c *Context) File(filepath string) {
 	http.ServeFile(c.Writer, c.Request, filepath)
 }
 
+func (c *Context) Stream(step func(w http.ResponseWriter)) {
+	w := c.Writer
+	clientGone := w.CloseNotify()
+	for {
+		select {
+		case <-clientGone:
+			return
+		default:
+			step(w)
+			w.Flush()
+		}
+	}
+}
+
 /************************************/
 /******** CONTENT NEGOTIATION *******/
 /************************************/