C++和js交互方案对比

c++和js交互方案对比

一:nodejs技术
nodejs技术是基于V8引擎的一套前后端交互技术。
nan.h为c++提供了与js交互的一系列V8 API
参考链接
缺点:
在Node.js中,大型用户请求加载需要更多时间。
在Node.js中,响应并发用户请求需要更多时间。
Node.js的吞吐量很低。
可以通过和nginx联合部署来避免这些缺点
二:CEF框架
Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。

简单说就是Chrome的开源版。
虽然可以进行二次开发,但是对于大部分想要完成网站搭建的开发者来说工作量较大且,技术门槛较高。
参考文档
三:fastCGI
通用网关接口(Common Gateway Interface/CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI 独立于任何语言的,CGI 程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。Unix shell script, Python, Ruby, PHP, perl, Tcl, C/C++, 和 Visual Basic 都可以用来编写 CGI 程序
在这里插入图片描述
虽然可以很好的前后端交互,但是偏离了我原先想要使用c++单独编写业务服务器的需求。
参考文档
4:HTTP协议
通过POST和GET实现
前端JS和后端C++业务直接使用POST,GET进行交互,也是目前市场上较为主流的前后端交互方式之一。
JS参考文档
C++参考文档

总结:最后还是选用的原生的HTTP协议,安全可以后面使用https来保护,并发量较大的话,可以后期将C++业务进行多台主机的部署,以及通过nginx的反向代理实现负载均衡。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用Qt Quick时,我们可以使用QML和C++进行交互。QML是一种声明性语言,用于设计用户界面和定义交互逻辑,而C++则通常用于处理底层逻辑和业务逻辑。 为了在QML中调用C++的代码,我们可以通过在C++中注册一个类型到QML中。在C++中,我们可以使用Q_INVOKABLE宏将一个函数或者成员函数注册为可在QML中调用的函数。例如: ```cpp // MyObject.h #ifndef MYOBJECT_H #define MYOBJECT_H #include <QObject> class MyObject : public QObject { Q_OBJECT public: explicit MyObject(QObject *parent = nullptr); Q_INVOKABLE void helloWorld(); }; #endif // MYOBJECT_H ``` 然后在C++中实现该函数: ```cpp // MyObject.cpp #include "MyObject.h" MyObject::MyObject(QObject *parent) : QObject(parent) { } void MyObject::helloWorld() { qDebug() << "Hello World!"; } ``` 接下来,在我们的QML文件中引入该对象并调用该函数: ```qml import QtQuick 2.0 Item { MyObject { id:myObject } Button { text: "Click me" onClicked: { myObject.helloWorld(); } } } ``` 当点击按钮时,QML将调用MyObject对象中的helloWorld函数,并在应用程序的输出中打印“Hello World!”。 除了使用Q_INVOKABLE宏,我们还可以在C++中使用信号和槽机制来实现QML和C++交互。在C++中使用Q_PROPERTY宏可以将C++属性暴露给QML使用,使得QML可以监控和操作该属性。 通过这些方式,我们可以实现QML与C++交互,从而达到更好的分工和功能实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值