看到Delphi盒子论坛里面有人讨论WEB开发,提到 IntraWeb 和 UniGUI 控件。
这两个控件都是在使用 Delphi 写后端(服务器端)的代码时,在后端构造页面代码,让浏览器访问时可以看到页面。这种做法把前端代码和后端代码混在一起了,基本上是 C/S 开发的模式。当然,传统的 WEB 开发,不管是 ASP,JSP 还是 PHP,也都是类似的模式。只是 Delphi 的上述两种框架提供了页面的可视化开发,拖拉控件就能出现页面。
从程序架构来说,后端只负责数据,前端代码只负责页面显示,这样分开,架构上更清晰,代码也更容易维护。WEB 开发转了一大圈,终于转到前端页面彻底用 JS 代码来实现并且也【组件化】了,基本上转到了 N 多年前 Delphi 的开发模式上了。
于是我想试试,后端用 Delphi 来写服务器,输出数据给前端,前端用 JS 来从服务器获取数据,渲染页面。当然,前端渲染页面的框架很多,比如 VUE 等等。这里我仅仅做研究,是否最终会用到哪个前端框架,接下来再说。
首先使用 Delphi 创建一个 Stand alone 模式的 WebBroker 工程,运行起来,默认工作在8080端口上面,让浏览器去访问它,就能看到页面。这个工程的基本代码是:
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
beginResponse.Content :='' +'Web Server Application ' +'Web Server Application' +'';
end;
上述代码,就是当这个服务器收到一个 HTTP 请求的时候,返回一堆字符串给浏览器。这堆字符串刚好是一个标准的 HTML 页面的代码,于是浏览器就显示这个 HTML 页面的内容了。
运行这个 WebBroker 的程序,打开浏览器,地址栏输入:http://127.0.0.1:8080
然后就能看到浏览器网页显示上述代码里面的那串文字了。你当然可以试着改掉那行字,重新编译运行程序,然后用浏览器重新打开(刷新一下页面)就能看到你输入的文字。
WebBroker 就是这么简单。
首先,从前端如何向后端获取数据(仅仅是数据,而不是 HTML 页面代码)做起。
网上一搜,这篇文章说得不错:
javaScript中ajax、axios总结 - 唯美(vmei) - 博客园 (cnblogs.com)
这篇文章里面,提到 3 种方法:
1. 直接使用原生的 JS 代码;
2. 使用 jQuery 这个 JS 库;
3. 使用 axios 这个 JS 库;
使用原生的 JS 代码,代码行数比较多。使用 jQuery 这个库,我以前做过,这次就不想测试了。而且现在流行的前端框架 VUE 等都开始使用 axios,那我就试试 axios 和 Delphi 如何搭配吧。
实现前端调用后端的 HTTP 请求的方法:
https://www.cnblogs.com/hgdzjp/p/9438893.html
aaa