建立和维护个人网站具有许多优势,包括您的平台所有权以及探索网络技术的机会。最近,我从自己的网站开始研究无服务器功能。本文分享了我的经验和学习,使您能够建立自己的经验和学习!
快速介绍无服务器功能
无服务器功能(也称为lambda功能或云功能)是您可以独立编写,主机执行和执行的独立代码段,独立于您的网站,应用程序或其他代码。当它们在服务器上运行时,您不管理服务器基础架构。这简化了强大的可扩展应用程序的开发。
为了获得更深入的理解,CSS-Tricks的指南“无服务器前端开发人员的力量”是一个很好的资源。
项目目标:简单的电子邮件注册表格
我的项目专注于创建具有特定约束的电子邮件注册表格:
- 无JavaScript功能:表单应仅使用CSS和HTML功能,从而允许进行渐进的增强功能。
- 没有外部依赖性:目标是自己编写所有代码。
- 无服务器功能集成:电子邮件数据处理将发生服务器端,而不是客户端。
技术堆栈:11ty,Netlify和Buttondown
我的网站使用11ty,这是一个静态站点生成器,允许创建HTML模板。 NetLify处理部署,对于无服务器功能至关重要,提供:
- 自动化的GitHub部署:简化开发工作流程。
- NetLify表格:管理表单提交,而没有自定义代码。
- NetLify函数:基于表单数据启用服务器端操作。
Buttondown用作电子邮件列表管理服务。重要的是,对于个人站点,这三个服务都提供免费层。
表格的HTML
我的电子邮件订阅表的HTML简洁,利用NetLify表单属性:
data-netlify="true"
指示NetLify处理表单。 bot-field
输入充当蜜罐来检测机器人,自动从用户隐藏。 Netlify的Akismet集成进一步保护了垃圾邮件。 email
输入使用浏览器验证来增强用户体验。
JavaScript进行逐步增强
虽然Netlify表单提供自动重定向,但我更喜欢将用户保留在页面上。 JavaScript函数增强了表单的功能:
const processForm = form => { // ...(提取API代码而不重定向提交表单)... };
该功能是由提交事件侦听器触发的,可以逐步增强表单,即使禁用JavaScript,也可以确保功能。
无服务器功能
NETLIFY函数位于functions/submission-created.js
中,进程表格提交:
// ...(使用Node-fetch和环境变量来将数据发送到buttondown)... ...
该函数检索电子邮件地址,使用node-fetch
通过其API将其发送到Buttondown,并记录调试结果。环境变量安全地存储了Buttondown API键。
部署和本地测试
编写函数,配置netlify.toml
和设置环境变量后,通过NetLify的GitHub集成,部署是简单的。可以使用NetLify Dev( npm i netlify -g
,然后是netlify dev
)进行本地测试,尽管表单提交测试需要预览构建。
未来的改进
未来的增强功能可能包括向用户提供实时反馈,例如指示是否已经订阅了电子邮件地址。
结论
使用大约50行代码,我创建了一个功能齐全的电子邮件注册表格。 HTML,CSS,JavaScript和NetLify的无服务器功能的组合导致了抗垃圾邮件,用户友好的表单,无论JavaScript可用性如何,都可以使用。
以上是使用NetLify表单和NetLify功能来构建电子邮件注册小部件的详细内容。更多信息请关注PHP中文网其他相关文章!

具有CSS的自定义光标很棒,但是我们可以将JavaScript提升到一个新的水平。使用JavaScript,我们可以在光标状态之间过渡,将动态文本放置在光标中,应用复杂的动画并应用过滤器。

互动CSS动画和元素相互启动的元素在2025年似乎更合理。虽然不需要在CSS中实施乒乓球,但CSS的灵活性和力量的增加,可以怀疑Lee&Aver Lee&Aver Lee有一天将是一场

有关利用CSS背景滤波器属性来样式用户界面的提示和技巧。您将学习如何在多个元素之间进行背景过滤器,并将它们与其他CSS图形效果集成在一起以创建精心设计的设计。

好吧,事实证明,SVG的内置动画功能从未按计划进行弃用。当然,CSS和JavaScript具有承载负载的能力,但是很高兴知道Smil并没有像以前那样死在水中

是的,让#039;跳上文字包装:Safari Technology Preview In Pretty Landing!但是请注意,它与在铬浏览器中的工作方式不同。

此CSS-tricks更新了,重点介绍了年鉴,最近的播客出现,新的CSS计数器指南以及增加了几位新作者,这些新作者贡献了有价值的内容。

在大多数情况下,人们展示了@Apply的@Apply功能,其中包括Tailwind的单个property实用程序之一(会改变单个CSS声明)。当以这种方式展示时,@Apply听起来似乎很有希望。如此明显


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),