跳转至

快速开始

目标

我们计划开发一个极简web页面,每隔1s,从后端接口获取服务器的最新时间并显示在页面上。
完成这些,只需要少量代码即可。

前提

您已经按前一章节的内容,下载了ie310go的源码,并确保源码目录是:

{yourGoPath}/src/github.com/ie310mu
此示例需要使用到 jQuery 和一个基础js文件 base.js右键另存为 即可下载。

创建项目

创建目录:{yourGoPath}/src/i3go_t001,并将刚才下载的两个文件jquery.min.js、base.js放进去备用。

动态接口

在i3go_t001目录下,创建文件main.go,并输入以下代码:

package main

import (
    "time"

    "github.com/ie310mu/ie310go"
    "github.com/ie310mu/ie310go/common/convert"
    "github.com/ie310mu/ie310go/common/dir"
    "github.com/ie310mu/ie310go/route"
)

func main() {
    httpConfig := route.ServerHTTPConfig{Port: "8103", ServiceSuffix: "goss", Jsonp: true, ServeStaticFunc: route.DefaultServeStatic, DefaultStaticDir: dir.GetCurrentPath()}
    srv := route.NewServerHTTP(httpConfig, "httpServer")
    srv.RegisterService(&TimeService{})
    route.RegisterServer(srv)

    ie310go.Run(nil)
}

//TimeService ..
type TimeService struct {
    route.BaseService
}

//GetServerTime ..
func (s TimeService) GetServerTime(args *route.ServiceArgs) string {
    now := time.Now()
    str := convert.DateTimeWithSecToStr(now)
    return str
}

静态网页文件

在i3go_t001目录下,创建文件index.html,并输入以下代码:

<!DOCTYPE html>
<html>

<head></head>

<body>
    <div id="serverTime"></div>

    <script src="/jquery.min.js"></script>
    <script src="/base.js"></script>
    <script>
        getServerTime();

        function getServerTime() {
            beginInvokeJsonService("timeService.goss", "getServerTime", {}, function (e) {
                $("#serverTime").html(e.data);
                setTimeout(function () { getServerTime(); }, 1000);
            }, invokeServiceError);
        }
    </script>
</body>

</html>

下载示例代码

i3go_t001.rar

启动

在i3go_t001目录下执行命令:(注意不要使用go run main.go,因为那样运行目录是一个临时目录,会访问不到网页文件)

go build main.go
main
打开浏览器,输入地址 http://127.0.0.1:8103/