新年快乐!回顾2024,展望2025!这一年,我取得了一些令人兴奋的成果,现在就和大家分享一下。也欢迎大家在评论区分享你们的成就!

Campel.js 的优化之路
2024 年,我的主要目标是提升 Campel.js 框架的性能,使其成为网络上速度最快的框架之一,并且不依赖虚拟DOM。2023 年底,框架的性能指标为 1.12,虽然已经不错,但我仍追求极致。

经过大约半年的努力,我最终实现了目标!这个过程比预期的漫长,但最终成果令人满意。在夏季,我将性能提升至 1.08,取得了显著进展。

虽然理论上可以进一步优化到 1.05,但我认为核心问题已解决,继续优化意义不大。
完成 Campel.js 的优化后,我开始思考新的挑战,于是有了 Hmpl 项目。
Hmpl 项目:框架与服务器的共生
我意识到,仅仅开发框架意义有限,现代 UI 工具功能已经非常强大。但我也不想放弃快速渲染的优势,因此决定探索框架、扩展标记语言和服务器之间的协同关系。
例如,以下标记在独立使用时有效,但在框架中却无法直接应用:
<code><div class="tablecomponent">
<h1>data table:</h1>
<table class="table table-hover table-striped test-data"><thead><tr><th>id</th>
<th>name</th>
<th>material</th>
<th>quantity in stock</th>
<th>number of sales</th>
<th>price</th>
</tr></thead><tbody id="tbody"><template data-cample="data-table" data-cample-import="{{{tabledata}}}"></template></tbody></table><div class="navigation">
<div class="pagination">
{{data.currentpage}}
>
</div>
</div>
</div></code>与其在框架上投入更多时间,不如将快速渲染与服务器端渲染 (SSR) 结合,创造更具价值的工具。Hmpl 项目应运而生,它并非构建新的架构,而是作为补充。
Hmpl 的第一个版本,也就是 cample-html,与之前的框架类似,但仅在服务器端运行。其使用方法如下:
<code>const templatefn = camplehtml.createtemplate(
`<template data-cample="" data-method="get" data-src="/api/test"></template>`
);
// (服务器响应后) { element = template (htmltemplateelement type), status = 200 }
const elementobj = templatefn({
credentials: "same-origin",
get: (prop, value) => {
if (prop === "element") {
console.log(value);
}
},
});</code>经过六个月的开发,Hmpl 已经趋于成熟,具备缓存、事件处理、表单自动提交等功能,但仍有改进空间,例如设置请求间隔、添加 Websocket 支持等。
目前 Hmpl 的部分功能示例:
<code>import { compile } from "hmpl-js";
const templateFn = compile(
`<div>
<div class="form-example">
<label for="login">Login: </label>
</div>
<div class="form-example">
</div>
<p>
{
{
src: "/api/register",
after: "submit:#form",
repeat: false,
indicators: [
{
trigger: "pending",
content: "</p><p>Loading...</p>"
}
]
}
}
</div>`
);
const initFn = (ctx) => {
const event = ctx.request.event;
return {
body: new FormData(event.target, event.submitter),
credentials: "same-origin"
};
};
const obj = templateFn(initFn);
const wrapper = document.getElementById("wrapper");
wrapper.appendChild(obj.response);</code>我相信 Hmpl 的潜力巨大,能够帮助许多开发者创建出色的网站。
总结与展望
2024 年,我们取得了不错的进展,但未来仍有更多目标需要实现。希望在 2025 年,我们可以做得更好!
你的2024年收获如何呢?期待你的分享!

祝大家新年快乐,梦想成真,代码优雅,bug 远离!
以上就是❄️Devto新年快乐!我的结果️的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号