Add server.go and other js code, the chart is showing now. But has one problem, the showing charset has problem

This commit is contained in:
weizili.360.laptop 2014-12-25 21:09:41 +08:00
parent c9b10d2991
commit 4bad8ebf2e
7 changed files with 179 additions and 10 deletions

View File

@ -1,4 +1,4 @@
Copyright (c) 2014, Copyright (c) 2014, zieckey
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View File

@ -1,8 +1,4 @@
package gochart package main
import (
)
var HighChartsJS = ` var HighChartsJS = `
/* /*

6
jquery_1_8_3_min_js.go Normal file

File diff suppressed because one or more lines are too long

9
main.go Normal file
View File

@ -0,0 +1,9 @@
package main
const start = `version: 1.0
http://localhost:8000`
func main() {
println(start)
println(ListenAndServe(":8000").Error())
}

View File

@ -1,9 +1,5 @@
package main package main
import (
)
var ModulesExportingJS = ` var ModulesExportingJS = `
/* /*
Highcharts JS v4.0.1 (2014-04-24) Highcharts JS v4.0.1 (2014-04-24)

94
point_line_html.go Normal file
View File

@ -0,0 +1,94 @@
package main
var PointLineHtml = `{{define "T"}}
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>
<script type="text/javascript">{{.JQuery183MinJS}}</script>
<script type="text/javascript">
$(function () {
$('#container').highcharts({
chart: {
// type: 'spline'
type: '{{.ChartType}}'
// 默认是折线图(line)。type取值如下
// line:折线图
// spline:曲线图,线条圆滑一些
// column:竖向柱状图
// area:面积图
// bar:横向柱状图
// 更多选项请参考http://api.highcharts.com/highcharts#plotOptions
},
title: {
// text: 'Monthly Average Temperature',
text: '{{.Title}}',
//x: -20 //center
},
subtitle: {
// text: 'Source: WorldClimate.com',
text: '{{.SubTitle}}',
//x: -20
},
xAxis: {
// categories: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
categories: {{.XAxisNames}} // JSONArray格式字符串与x轴上点数的个数一致
},
yAxis: {
title: {
// text: 'Temperature (°C)'
text: '{{.YAxisName}}'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
// valueSuffix: '°C'
valueSuffix: '{{.ValueSuffix}}'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: [
{{.DataArray}}
/*
{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
},
{
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
},
{
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
},
{
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}
*/
]
});
});
</script>
</head>
<body>
<script>{{.HighChartsJS}}</script>
<script>{{.ModulesExportingJS}}</script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
</body>
</html>
{{end}}
`

68
server.go Normal file
View File

@ -0,0 +1,68 @@
package main
import (
// "errors"
// "fmt"
"net/http"
"text/template"
)
var DataArray = `
{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
},
{
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
},
{
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
},
{
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}
`
func handler(w http.ResponseWriter, r *http.Request) {
var Args = map[string]string{
"HighChartsJS": HighChartsJS,
"JQuery183MinJS" : JQuery183MinJS,
"ModulesExportingJS" : ModulesExportingJS,
"ChartType" : "spline",
"Title" : "Monthly Average Temperature",
"SubTitle" : "Source: WorldClimate.com",
"YAxisName" : "Temperature (°C)",
"XAxisNames" : "['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']",
"ValueSuffix" : "°C",
"DataArray" : DataArray,
}
if t, err := template.New("foo").Parse(PointLineHtml); err != nil {
w.Write([]byte(err.Error()))
} else {
if err = t.ExecuteTemplate(w, "T", Args); err != nil {
w.Write([]byte(err.Error()))
}
}
}
func ListenAndServe(addr string) error {
http.HandleFunc("/", handler)
http.HandleFunc("/favicon.ico", func(w http.ResponseWriter, r *http.Request) {})
// var err error
// ChartFiles, err = LookupCurrentDir(".")
// if err != nil {
// return err
// }
//
// if len(ChartFiles) == 0 {
// return errors.New("No chart data.")
// }
return http.ListenAndServe(addr, nil)
}