DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: bluewind23
今日帖子: 0
在线用户: 8
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/15 2:50:01
标题:
基于 Delphi 的前后端分离:之四,使用 HTMX 让页面元素组件化 浏览:1115
加入我的收藏
楼主: https://blog.csdn.net/pcplayer/article/details/139692787
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/15 14:07:56
1楼: 这种方法出来的页面体积有多大?如果会有很明显的膨胀的话,那应用场景还是受限的。毕竟移动端上还是要考虑流量以及加载时长的
----------------------------------------------
--
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/15 17:25:04
2楼: 页面体积是前端框架决定的,不是 Delphi 决定的。如果你使用的前端框架包含的代码巨多,第一次打开页面要下载所有前端框架的代码,那就肯定慢。

单纯的 HTMX 这个框架,体积很小。问题是,你可能还需要其它的让页面变得更漂亮的框架,或者一些前端的组件比如图表的框架,等等。这个和用 Delphi 来编程无关。只要是 WEB,就需要考虑使用哪个前端框架。

使用 HTMX 的好处是:
1. 代码简单;使用起来和 Delphi 的控件类似,设置几个属性就能让前端动态起来。而不需要去写 JS 。
2. 每次访问服务器,只需要更新页面上的一点点内容,服务器压力小,流量也小,因此反应速度会很快。类似以前的 AJAX。但是以前用 jQuery 写 AJAX 是比较复杂的,学会的曲线更为陡峭。使用 HTMX 的学会的曲线平台,几分钟就能搞懂。

MD,中文已经被搞坏了。
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/15 17:42:26
3楼: 原来如此,大概了解了。
PS: 前端页面一直用github上那套AdminLTE,这个效果不错,相当推荐。
----------------------------------------------
--
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/15 19:35:28
4楼: 3 楼,多谢推荐。我去看看。
----------------------------------------------
-
作者:
男 jjwwang (jjwwang) ★☆☆☆☆ -
普通会员
2024/6/16 10:26:54
5楼: 个人觉得 delphi 可以向当前的“低代码平台”发展,我试的这个平台可以在“开发模式”和“用户模式”切换。在开发模式下,可以直接生成FORM表单,实现数据的,增、删、改、查。这路数delphi做个简单的C/S程序很像,共3步:
1. 指定一个、多几表,设置下关联字段。
2. 拖拽UI组件创建表单,设置字UI组件的关联字段。(选择表,再选择表的字段)
3. 设置下表格显示的字段及固定的列等,设置查询项(字段)。
做完这3步,你指定一个发布的菜单项,再切换到用户模式,就可以直接用了。

另外,还可以自定义数据接口:
1.起个接口名。
2.写个[select, insert, update]SQL,
3.指定这个接口返回JSON数据的定义。
----------------------------------------------
学无止境
作者:
男 jjwwang (jjwwang) ★☆☆☆☆ -
普通会员
2024/6/16 10:37:34
6楼: 我试的这个平台的后端有JAVA和.NET两个版本可选。UI组件是封装了elemnetUI一些组件,但不多。所以用DELPHI搞一个类似的平台也是可以的。个人觉得UI组件想丰富,想好用,还是用JS/HTML/CSS更好,最终实现就是 UI组件属性+接口数据,和DELPHI做简单C/S程序一样,拖拖拽拽,点点设置就行了。
----------------------------------------------
学无止境
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/16 16:47:34
7楼: 6楼,我去 github 上搜到 AdminLTE,里面的文件都是 astro 文件。看起来还需要编译才能变成 html 或者 js ?
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/16 17:21:08
8楼: 是这个:
https://github.com/ColorlibHQ/AdminLTE.git
不过他更到V4了,我还在用V3的,估计是大版本更新以后改成这样的吧?
下个V3的发行版呢?
https://github.com/ColorlibHQ/AdminLTE/archive/refs/tags/v3.2.0.zip
直接打开index.html就行,我直接用nginx加载就可以出效果,这个是运行截图
此帖子包含附件:
PNG 图像
大小:212.8K
----------------------------------------------
--
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/16 20:37:46
9楼: 多谢8楼。下载到了。这个玩意简单地看 index.html 的界面,做得很强大啊。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/16 23:25:25
10楼: 简单看了一下它的例子的 index.html.在它的代码里面找那个曲线图。感受:
1. 代码没有模块化。当然,这个是最终生成的 index.html,也许生成这个 index.html 之前的代码是模块化的。

2. 曲线图表,它用的 chart.js.这个的确是可以用 Delphi 封装成控件来使用的。

我现在觉得,如果使用 Delphi 来开发 Web
1. 可以把各个页面组件,封装为 Delphi 的控件。技术上可以做到而且难度不大;
2. 各个组件的动态替换,如果使用 HTMX 来做,后端用 Delphi,会非常简单。
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/17 13:22:24
11楼: emmm
关于web前端,我不是太懂,不过我到现在为止,想要的所有页面元素,或者叫页面控件都可以在这套页面里找到。至于是不是模块化的,这个还没研究到那么深的地步。按此在新窗口浏览图片
----------------------------------------------
--
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/17 13:36:13
12楼: 11 楼,所谓的模块化,就是把页面元素封装起来。如果我用 Delphi 写后端,那就是把页面元素封装成 Delphi 的控件。一个元素,一个控件。想要哪个元素,直接用那个控件。这样比在一个 html 里面写 N 多元素,代码读起来也简单,管理起来也简单。
----------------------------------------------
-
作者:
男 wuxi15 (似水·流年) ▲▲▲▲▲ -
普通会员
2024/6/18 11:44:42
13楼: 如果可以封装成unigui这样的框架那才方便
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/18 13:45:50
14楼: unigui 那样的封装,其实就是需要做基于 Delphi IDE 的设计期可视化。

对于原本的 VCL 程序来说,设计期的可视化和运行期是同一套代码。你在设计期的 Form 上面看到的 Button 本身就是可执行代码的执行结果,和运行期的执行代码是完全相同的一套代码。

对于 WEB 来说,假设想要在设计期的 Form 上,摆出一个可视化控件,但在运行期,其实是在浏览器上显示的,那这个可视化控件在设计期实际上运行的是 Delphi 的代码,而在运行期,需要输出的是 HTML/JS/CSS 的代码。那么,设计期的代码其实只是一个界面模拟器。

当然,也可以这样做,不过就是有更多的工作量,仅仅是为了能够在设计期的 Form 上面画出执行期的浏览器的 WEB 界面的样子来。如果是商品化的卖钱的软件,做多这部分的工作没有问题。所有 UNIGUI 也是要卖钱的。

如果仅仅是自己开发 WEB 用,为了自己开发方便封装控件,那封装成非可视化控件足够了。可视化的页面开发,直接拿了别人的页面模板去改,看效果直接用浏览器看就好了。
----------------------------------------------
-
作者:
男 yayongm (昵  称) ★☆☆☆☆ -
盒子活跃会员
2024/6/18 20:38:48
15楼: 以前玩过,可以参考一下:www.moonserver.cn
8楼的那个也都部署过,不过因为cache服务器经常死掉的问题而放弃了.
----------------------------------------------
弱小和无知不是生存的障碍,傲慢才是!
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/18 21:37:01
16楼: 楼上的,我用的还好啊,不过我都是用到哪里复制哪里出来,从来没有全站引用过。
不过你说的cache服务器是啥?web前端我很多东西不懂,是cookies还是localstorage?
----------------------------------------------
--
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/18 21:45:35
17楼: www.moonserver.cn  进去看了一下,好像是基于 TIdHTTPServer 来做的?

是不是内部采用了 Pascal Script 来做类似 PHP 的东西?
----------------------------------------------
-
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2024/6/20 9:14:09
18楼: 楼主可以研究研究这个,也可能楼主已经研究过:
 /smartmobilestudio.com/   
/smartmobilestudio.com/2013/07/03/smart-mobile-studio-1-1-2-beta/  关键词是DWScript
然后DWScript在这里/github.com/EricGrange/DWScript/tree/master
结合HTMX,楼主是不是会觉得工具已经串成tool chain了,就差行动了。嘻嘻。

哈,网址也不让提了?!
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/6/20 15:57:53
19楼: 多谢。smartmobilestudio 我看了一下,似乎是传统 Delphi 开发方式,最后把 Form 编译成 WEB 的代码来使用?

我觉得要搞,还是直接搞 WEB,利用网上一大堆 WEB 的开源前端。

只是我最近也没什么网页要做,没有动力和时间去封装那些开源的前端组件。比如 Chart 之类的。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行40.03906毫秒 RSS