mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
ed45c77be5
Former-commit-id: ed635ee95de7160cde11eaabc0c1dcb0e460a620
40 lines
986 B
Go
40 lines
986 B
Go
// Package main shows how you can use the `WriteWithExpiration`
|
|
// based on the "modtime", if it's newer than the request header then
|
|
// it will refresh the contents, otherwise will let the client (99.9% the browser)
|
|
// to handle the cache mechanism, it's faster than iris.Cache because server-side
|
|
// has nothing to do and no need to store the responses in the memory.
|
|
package main
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/kataras/iris/v12"
|
|
)
|
|
|
|
const refreshEvery = 10 * time.Second
|
|
|
|
func main() {
|
|
app := iris.New()
|
|
app.Use(iris.Cache304(refreshEvery))
|
|
// same as:
|
|
// app.Use(func(ctx iris.Context) {
|
|
// now := time.Now()
|
|
// if modified, err := ctx.CheckIfModifiedSince(now.Add(-refresh)); !modified && err == nil {
|
|
// ctx.WriteNotModified()
|
|
// return
|
|
// }
|
|
|
|
// ctx.SetLastModified(now)
|
|
|
|
// ctx.Next()
|
|
// })
|
|
|
|
app.Get("/", greet)
|
|
app.Listen(":8080")
|
|
}
|
|
|
|
func greet(ctx iris.Context) {
|
|
ctx.Header("X-Custom", "my custom header")
|
|
ctx.Writef("Hello World! %s", time.Now())
|
|
}
|