网站首页  软件下载  游戏下载  源码下载  词典软件  教程攻略

请输入您要查询的源码:

 

源码 Highcharts(JavaScript图表库) v12.0.2
图标
分类 源码下载-软件开发-java源码-JavaScript图表库下载 java源码
语言 简体中文
大小 22.6MB
软件类型 国产软件
发布时间
用户评分 3
备案号
官方网址
软件授权 免费软件
操作系统 Javascript
厂商
下载
介绍

Highcharts是一个制作图表的纯Javascript类库。

Highcharts主要特性:

1、兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;

2、对个人用户完全免费;

3、纯JS,无BS;

4、支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼状图、散布图;

5、跨语言:不管是PHP、Asp.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highcharts.js,还有a canvas emulator for IE和Jquery类库或者MooTools类库;

6、提示功能:鼠标移动到图表的某一点上有提示信息;

7、放大功能:选中图表部分放大,近距离观察图表;

8、易用性:无需要特殊的开发技能,只需要设置一下选项就可以制作适合自己的图表;

9、时间轴:可以精确到毫秒;

下面我们来演示如何使用elton返回Hello, World!,并且添加了一些常用的中间件

package main
import (
	"github.com/vicanso/elton"
	"github.com/vicanso/elton/middleware"
)
func main() {
	e := elton.New()
	// panic处理
	e.Use(middleware.NewRecover())
	// 出错处理
	e.Use(middleware.NewDefaultError())
	// 默认的请求数据解析
	e.Use(middleware.NewDefaultBodyParser())
	// not modified 304的处理
	e.Use(middleware.NewDefaultFresh())
	e.Use(middleware.NewDefaultETag())
	// 响应数据转换为json
	e.Use(middleware.NewDefaultResponder())
	e.GET("/", func(c *elton.Context) error {
		c.Body = &struct {
			Message string `json:"message,omitempty"`
		}{
			"Hello, World!",
		}
		return nil
	})
	e.GET("/books/{id}", func(c *elton.Context) error {
		c.Body = &struct {
			ID string `json:"id,omitempty"`
		}{
			c.Param("id"),
		}
		return nil
	})
	e.POST("/login", func(c *elton.Context) error {
		c.SetContentTypeByExt(".json")
		c.Body = c.RequestBody
		return nil
	})
	err := e.ListenAndServe(":3000")
	if err != nil {
		panic(err)
	}
}
go run main.go

之后在浏览器中打开http://localhost:3000/则能看到返回的Hello, World!。

路由

elton每个路由可以添加多个中间件处理函数,根据路由与及HTTP请求方法指定不同的路由处理函数。而全局的中间件则可通过Use方法来添加。

e.Use(...func(*elton.Context) error)
e.Method(path string, ...func(*elton.Context) error)

e 为elton实例化对象

Method 为HTTP的请求方法,如:GET, PUT, POST等等

path 为HTTP路由路径

func(*elton.Context) error 为路由处理函数(中间件),当匹配的路由被请求时,对应的处理函数则会被调用

路由示例

elton的路由使用chi的路由简化而来,下面是两个简单的示例。

// 带参数路由
e.GET("/users/{type}", func(c *elton.Context) error {
	c.BodyBuffer = bytes.NewBufferString(c.Param("type"))
	return nil
})
// 复合参数
e.GET("/books/{category:[a-z-]+}-{type}", func(c *elton.Context) error {
	c.BodyBuffer = bytes.NewBufferString(c.Param("category") + c.Param("type"))
	return nil
})
// 带中间件的路由配置
e.GET("/users/me", func(c *elton.Context) error {
	c.Set("account", "tree.xie")
	return c.Next()
}, func(c *elton.Context) error {
	c.BodyBuffer = bytes.NewBufferString(c.GetString("account"))
	return nil
})

中间件

简单方便的中间件机制,依赖各类定制的中间件,通过各类中间件的组合,方便快捷实现各类HTTP服务,简单介绍数据响应与出错处理的中间件。需要注意,elton中默认不会执行所有的中间件,每个中间件决定是否需要执行后续处理,如果需要则调用Next()函数,与gin不一样(gin默认为执行所有,若不希望执行后续的中间件,则调用Abort)。

responder

HTTP请求响应数据时,需要将数据转换为Buffer返回,而在应用时响应数据一般为各类的struct或map等结构化数据,因此elton提供了Body(interface{})字段来保存这些数据,再使用自定义的中间件将数据转换为对应的字节数据,elton-responder提供了将struct(map)转换为json字节并设置对应的Content-Type,对于string([]byte)则直接输出。

package main
import (
	"github.com/vicanso/elton"
	"github.com/vicanso/elton/middleware"
)
func main() {
	e := elton.New()
	// 对响应数据 c.Body 转换为相应的json响应
	e.Use(middleware.NewDefaultResponder())
	getSession := func(c *elton.Context) error {
		c.Set("account", "tree.xie")
		return c.Next()
	}
	e.GET("/users/me", getSession, func(c *elton.Context) (err error) {
		c.Body = &struct {
			Name string `json:"name"`
			Type string `json:"type"`
		}{
			c.GetString("account"),
			"vip",
		}
		return
	})
	err := e.ListenAndServe(":3000")
	if err != nil {
		panic(err)
	}
}

error

当请求处理失败时,直接返回error则可,elton从error中获取出错信息并输出。默认的出错处理并不适合实际应用场景,建议使用自定义出错类配合中间件,便于统一的错误处理,程序监控,下面是引入错误中间件将出错转换为json形式的响应。

package main
import (
	"github.com/vicanso/elton"
	"github.com/vicanso/elton/middleware"
	"github.com/vicanso/hes"
)
func main() {
	e := elton.New()
	// 指定出错以json的形式返回
	e.Use(middleware.NewError(middleware.ErrorConfig{
		ResponseType: "json",
	}))
	e.GET("/", func(c *elton.Context) (err error) {
		err = &hes.Error{
			StatusCode: 400,
			Category:   "users",
			Message:    "出错啦",
		}
		return
	})
	err := e.ListenAndServe(":3000")
	if err != nil {
		panic(err)
	}
}
截图
随便看

 

网盟提供免费网站源码下载(asp源码,php源码,.net源码),源码动态,使用教程和源码评测;为站长推介有价值的源码,为开发者宣传源码作品。

 

Copyright © 2002-2024 cnnbu.com All Rights Reserved
更新时间:2025/4/6 1:05:28