Go进阶:使用Gin框架简单实现服务端渲染

发布于:2024-10-24 编辑:匿名 来源:网络

前言 本文是关于《Gin框架简单实现服务端渲染》的文章。本文是个人学习的总结。

未经许可严禁转载。如果有什么不对的地方还请指正,谢谢!热身。

你知道我们常用什么技术来实现网站秒级打开吗?服务器端渲染 服务器端渲染(SSR)是一种将网页的渲染过程从客户端移至服务器的技术。与客户端渲染(CSR)相比,服务器端渲染有以下优点: 1、更好的首次加载性能:服务器端渲染可以直接在服务器端生成完整的 HTML 页面并发送给浏览器允许当用户第一次访问网站时,网站呈现速度更快。

这提高了网站加载速度和用户体验。 2.更好的SEO(搜索引擎优化):由于搜索引擎爬虫通常只抓取和渲染HTML内容,而不执行JavaScript代码,因此服务器端渲染可以确保搜索引擎能够正确抓取和索引网页内容。

,提高网站在搜索结果中的排名。 3、更好的可访问性:服务端渲染可以保证网站在没有JavaScript支持或者JavaScript执行失败的情况下仍然可以正常显示内容,提高网站的可访问性。

4、性能更好:服务器端渲染可以减轻客户端设备的负担,因为服务器端已经完成了部分渲染工作,客户端只需要处理少量的JavaScript代码,从而提高了客户端设备的性能网站。通过服务器端渲染,我们可以最大限度地发挥云服务器的作用。

恰逢程序员节。腾讯云有很大的折扣。

有需要的朋友可以弄个云服务器来玩玩,尝试一下服务端渲染go。语言上,使用Gin快速实现服务端渲染。

首先实现一个简单的Web服务器。首先使用Gin实现一个简单的Web服务器代码语言: go copy package mainfunc main(){ router := gin.Default() router.GET("/" ,func(c *gin.Context){ c.String(, "Hello") }) router.Run(":")}完成上面的代码后,我们直接运行就可以看到如下运行结果监听的是一个端口,而server之前只有一条GET路由-侧面渲染。

服务端渲染其实就是先在服务端把HTML之类的东西拼凑起来,然后直接返回给浏览器渲染。浏览器不需要重新拼凑代码。

。所以我们首先创建一个index.html文件。

里面的内容是任意的,前端代码可以随意调整。接下来是重头戏,服务器端渲染。

gin框架给我们封装了两个函数,LoadHTMLGlob和LoadHTMLFiles。这两个函数用来读取前端代码,然后保存到实例中,首先LoadHTMLFiles,这个函数的签名如下,使用...即可变参数语法糖,可以读取任意值参数代码语言:txt copy func (engine *Engine) LoadHTMLFiles(files...string) 所以我们很容易知道这个函数可以一次读取多个,如下代码语言所示:txt copy router.LoadHTMLFiles ("HTML/index.html","HTML /index2.html") 但不建议这样做,因为另一个函数 LoadHTMLGlob 可以杀死它。

用法如下: txt copy // 可以使用通配符匹配所有 router.LoadHTMLGlob("02_HtmlRendering/HTML/*") //选择HTML文件夹中的所有文件 router.LoadHTMLGlob("02_HtmlRendering/HTML/Text/* ") //选择HTML文件夹下Text文件夹中的所有文件 router.LoadHTMLGlob("02_HtmlRendering/HTML/**/ *") //选择HTML文件夹下所有文件夹中的所有文件,特别是 router.LoadHTMLGlob("02_HtmlRendering /HTML/**/*") 选择HTML文件夹下所有文件夹中的所有文件,这个酷极了。通过这两个函数,我们可以将前端代码与渲染引擎关联起来,然后使用代码语言:txt复制c.HTML(, "index.html", nil)返回响应。

请查看完整版。首先看一下目录结构。

我们可以使用LoadHTMLGlob来轻松读取它。可以看到如下代码代码语言: txt copy package mainimport "github.com/gin-gonic/gin" func main() { router := gin.Default() router.LoadHTMLGlob("02_HtmlRendering/HTML/**/* ") //选择HTML文件夹下各子文件夹中的所有文件。

这个东西的路径一定要正确 //router.LoadHTMLFiles("HTML /index.html", "HTML/index2.html") 不建议使用这个函数 router.GET("/", func(c * gin.Context) { // 这是渲染html时的使用方法 最后一个可以用来转换数据 传递给html中的c.HTML(, "index.html", nil) // index.html是文件在之前所在的路径下}) router.Run(":")} 我们在第8行读取了html代码,然后在第15行响应了这段代码。我们可以在浏览器中访问localhost:/,看到该内容我们写的html。

至此,一个简单的服务端渲染就完成了。 。

那么如果我们需要对两条路由进行服务端渲染怎么办?也就是下图中的结构。你知道如何渲染吗?我会在下一期继续总结学习进展。

欢迎订阅我的专栏。我正在参加腾讯科技创造特训营第二期有奖征文比赛,分享奖金池1万元和键盘手表。

Go进阶:使用Gin框架简单实现服务端渲染

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 沃峰科技助力企业客户服务升级,全面解决全国门店运维问题

    沃峰科技助力企业客户服务升级,全面解决全国门店运维问题

    .wp-block-column h3{margin-left:0} 在快速发展的商业环境中,企业客户服务始终是关键竞争力一。 然而,全国不少企业在门店运维服务中面临数字化系统缺失、智能化不足、线上线下分离等一系列挑战,直接影响服务效率和客户满意度。 针对这些痛点,沃峰科技推出了一整套覆盖全

    06-18

  • 诺初美创获数千万元天使轮融资,时代伯乐、莱斯创投联合投资

    诺初美创获数千万元天使轮融资,时代伯乐、莱斯创投联合投资

    投资圈(ID:pedaily)据6月8日消息,跨境智能家居品牌“诺初美创”已近期完成数千万元天使轮融资。 本轮融资由时代伯乐和莱斯创投共同投资。 本次募集资金将主要用于新产品研发。 诺初美创于今年8月上台。 面向25-45岁的家庭消费者,专注于家庭消费场景的产品创新和品牌运营

    06-17

  • 重庆两江新区设立4支新产业基金 总规模45.5亿

    重庆两江新区设立4支新产业基金 总规模45.5亿

    据投资界9月22日消息,重庆两江战略基金举办重点合作项目专场签约活动,设立4支新产业基金,并签约5个投资协议。 总投资规模45.5亿元。 签约项目涵盖大健康、智能制造、新基建、航空航天、人工智能、国际贸易、数字经济等多个产业领域,将助力两江新区进一步深化大数据智能创

    06-17

  • Xilinx 首席执行官概述公司新愿景和战略蓝图

    Xilinx 首席执行官概述公司新愿景和战略蓝图

    2020 年 3 月 19 日,加利福尼亚州圣何塞 — 全球自适应和智能计算领导者 Xilinx, Inc.(纳斯达克代码:XLNX)总裁兼首席执行官(首席执行官彭维克今天透露了公司的未来愿景和战略蓝图。 Peng的愿景是为Xilinx带来新发展、新技术和新方向,打造“自适应计算加速平台”。 在这

    06-06

  • 小家电品牌“豆禾科技”获近亿元A轮融资,

    小家电品牌“豆禾科技”获近亿元A轮融资,

    深耕供应链的小家电品牌“豆禾科技”已完成近亿元A轮融资。 本轮融资由鸿章资本投资,Verity Capital 跟投。 独家财务顾问。 本轮融资将主要用于产品研发、供应链升级、企业信息化建设等。

    06-17

  • 喝了还能降解的“食用标签”让假酒、假药无处藏身

    喝了还能降解的“食用标签”让假酒、假药无处藏身

    食品药品安全时刻关系着人们的生活。 然而,各类假冒伪劣产品始终令人防不胜防。 想要辨别真伪,可能需要有“火眼金睛”,但显然不可能每个人都具备这样的能力。 然而,在现代社会,你可以用科技来辅助。 ▲ 图片来自:Unsplash 美国印第安纳州Purdue大学和韩国国家农业科学

    06-21

  • Whole House Premium对美国第一贸易公司进行数百万美元战略投资

    Whole House Premium对美国第一贸易公司进行数百万美元战略投资

    据投资界8月7日消息,国内一站式家居软装解决方案Whole House Premium,近期又有新动作。 他向美国第一家贸易公司First Trade投资100万,并正式成为First Trade的股东。   全屋优品创始人周志胜介绍,公司已完成1万元B轮融资。 全屋优品成立仅两年,就以其对市场整体专业的

    06-18

  • 台积电抢购EUV光刻机加速7nm-5nm量产进程

    台积电抢购EUV光刻机加速7nm-5nm量产进程

    日前,荷兰半导体设备制造商ASML(阿斯麦)在财报发布会上表示,ASML将采用极紫外光刻机(EUV) 2020年,年出货量从18台增至30台,外媒报道称,晶圆代工厂龙头台积电将抢占30台EUV台的一半以上。 这也将使台积电成为今年的第一。 包含EUV技术的增强型7纳米工艺可于第一季度中

    06-06

  • 挑战闲鱼、转转,京东正式推出“拍拍二手”,会扰乱二手车市场吗?

    挑战闲鱼、转转,京东正式推出“拍拍二手”,会扰乱二手车市场吗?

    二手交易平台以“焕然一新”迎接新玩家。 12月21日,刘强东宣布京东正式上线“拍拍二手”品牌。 它将采用平台化运营思路,整合回收、检测、再加工、销售等逆向供应链资源,高举“品质二手”大旗。 将京东联盟生态拓展至二手商品交易领域。 拍拍二手是由拍拍网发展而来,拍拍网

    06-17

  • 徐小平:创业者看不起英雄,不愿意给他钱

    徐小平:创业者看不起英雄,不愿意给他钱

    在天使来华“两会大众创业”年度盛典上,徐小平回忆起一年来令他印象深刻的一件事: 2018年10月在北大演讲时,一名学生告诉他,学生中存在着职业鄙视链:在四大工作的人鄙视在快消工作的人,在咨询工作的人鄙视在四大工作的人,在投行工作的人鄙视在咨询工作的人,在PE工作的

    06-18

  • 超过110亿元!北汽新能源汽车创下行业最大单笔融资,为何全部退出……

    超过110亿元!北汽新能源汽车创下行业最大单笔融资,为何全部退出……

    过亿的融资金额对于新能源来说算大吗?    据投资界8月14日消息,北汽新能源今日正式宣布,公司已完成总额1800万元B轮融资,中国信达、中基投资、兴旺产业园、国轩投资共14家投资者参与了本轮融资。   创下新能源汽车行业单笔最大融资纪录,并已在筹备IPO。    据了解

    06-18

  • 市值破万亿,王传福表弟一次性返还5万倍

    市值破万亿,王传福表弟一次性返还5万倍

    这是一个里程碑时刻——6月10日,比亚迪股价创历史新高,市值首次突破万亿,成为第一个加入万亿美元市值俱乐部的中国人。 汽车公司。 早在2009年,29岁的王传福在深圳创立了比亚迪。 从一块小小的手机电池起家,后来打造了一个巨大的新能源汽车版图:新能源汽车、动力电池、半

    06-17