C++ 编写 Web 前端脚本的建议

问题描述 投票:0回答:2

我目前正在学习 C++,并且对可以像 C++ 后端部分一样快的 Web 前端感兴趣。哪些前端可以构成良好的组合?

不寻找最好的,只寻找那些可以在不使用cgi的情况下加入cpp的。所以请不要投反对票。

---更新------

我实际上是用 Java 开发 Web 应用程序的,这很不错。我正在研究 C++ 方面,因为我想尝试一下。三年前,我在大学课程中学习了一点 C++,现在我正在阅读 Deitel 第 8 版书籍,以弥补我错过的内容并回顾我之前学到的内容。我将阅读您的所有建议,并在生产力和速度之间选择平衡。我承认我是一个表演迷,这就是我对此感兴趣的原因。在问这个问题之前,我认为 Python 可以用作 Web 前端。但也许它不接近 C++ 性能,这就是为什么你没有提到它。

-----更新#2------

使用 python Web 框架或 java servlet 作为 Web 引擎,然后将其连接到 C++ 可以有什么行为? tomcat或python服务器会成为瓶颈吗?

c++ frontend
2个回答
1
投票

我认为很难找到 C++ 中的 Web 前端(可能您正在寻找的是相当于 GWT 的 C++)。后端更常见,并且有一些框架可以用 C++ 创建 Web 应用程序。 Facebook 有 Hiphop 用于将 PHP 代码转换为 C++ 以加快速度。但一切都主要归结为 HTML(5)/JavaScript/CSS。然而,Qt 框架与 WebKit 集成,您可以使用这个框架构建应用程序,该框架在 C++ 应用程序中利用 HTML5/JavaScript/CSS3(我不太熟悉它,所以可能是错误的)。顺便看看这个

编辑:在进一步谷歌搜索时,发现Wt,这可能看起来很有趣。 :)


0
投票

一种可能的解决方案可能是带有“百老汇”后端的 Gtk 。它的工作原理如下:首先运行 GTK Broadwayd 服务器,然后通过传递 env 来运行应用程序。连接到服务器的变量。在我的实验中,如您所料,没有图形也能正常工作。

默认服务器提供服务

http

。要使其使用
https
生成证书并传递到broadwayd服务器两条路径-c cert.pem  -k key.pem

这是一个通过 Gtk 实现的简单的 hello world Web 前端:

    使用以下内容创建
  1. test.cpp
    #include <gtk/gtk.h> static void activate(GtkApplication *app, gpointer user_data) { GtkWidget *window = gtk_application_window_new(app); // web frontend can't have top bar and be non-maximized gtk_window_maximize(GTK_WINDOW(window)); gtk_window_set_decorated(GTK_WINDOW(window), false); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_halign(box, GTK_ALIGN_CENTER); gtk_widget_set_valign(box, GTK_ALIGN_CENTER); gtk_window_set_child(GTK_WINDOW(window), box); GtkWidget *button = gtk_button_new_with_label("Hello World"); gtk_box_append(GTK_BOX(box), button); gtk_window_present(GTK_WINDOW(window)); } int main(int argc, char **argv) { GtkApplication *app = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); int status = g_application_run(G_APPLICATION(app), argc, argv); g_object_unref(app); return status; }
    
    
  2. 编译为
  3. g++ test.cpp -o a $(pkg-config --cflags --libs gtk4) -g3 -O0
    
    
  4. gtk4-broadwayd -p 8085
     运行百老汇服务器
    
  5. GDK_BACKEND=broadway ./a
     方式运行应用程序
    
  6. 通过网络浏览器与应用程序交互:http://localhost:8085

但请注意,Gtk 开发人员认为后端是实验性的。引用 IRC 的内容:

[14:21:32] <mclasen> a good reminder that we should document broadway more clearly as an experiment [14:26:10] <mclasen> it was written as a one-off experiment, and is not actively developed [14:26:37] <mclasen> it works and supported the gtk 4.0 features, but it is falling behind newer developments [14:37:14] <ebassi> […]: what mclasen said. Broadway is an experiment [14:37:25] <ebassi> if you want to use it, you get to fix it

    
© www.soinside.com 2019 - 2024. All rights reserved.