免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pi1ot
打印 上一主题 下一主题

发布一个比较老旧的Web开发C++类库 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-05-29 10:48 |只看该作者
我用delphi写isapi已经是够老土的了。。。。。。。

论坛徽章:
0
12 [报告]
发表于 2012-05-29 10:58 |只看该作者
本帖最后由 pi1ot 于 2012-05-29 10:58 编辑

这里向各位介绍的webapplib,没有wt那么大的野心,在html输出上,只是提供了一个类似于其他**p语言中常见的支持if条件判断和for循环输出的模板,具体可看手册 help.chm的 webapp::Template 部分,多谢,范例如下:

条件:
  1. {{#IF $value}}
  2.     HTML Codes ...
  3. {{#ELSIF .$table_value > 0}}
  4.     HTML Codes ...
  5. {{#ELSIF %DATE}}
  6.     HTML Codes ...
  7. {{#ELSIF some_string!=%BLANK}}
  8.     HTML Codes ...
  9. {{#ELSIF AND($v1==1,$v2<=2,$v3>=2)}}
  10.     HTML Codes ...
  11. {{#ELSIF OR(.$subv1==.$subv2,0!=0)}}
  12.     HTML Codes ...
  13. {{#ENDIF}}
复制代码
循环:
  1. {{#FOR $staff_table}}
  2.     COMPANY: {{.$company}},
  3.     DEPARTMENT: {{.$department}},
  4.     NAME: {{.$name}},
  5.     ID: {{.$id}},
  6.     AGE: {{.$age}};
  7. {{#ENDFOR}}
复制代码

论坛徽章:
0
13 [报告]
发表于 2012-05-29 14:34 |只看该作者
回复 8# AD8018


不是侵入,而是html这种是2端生成,一端是server,一段是client,client一般就是web browser,server可以是cgi,也可以是静态,什么都可以。现在client端的生成一般是js来做,google dark不晓得如何了。c/c++前面听说google chrome有native sdk支持了,可以跑客户端c++代码,没试验过。另外也有人尝试把python做到client里面去,不晓得如何了。
其实算:
源码->server制作->client制作->展示
这么个过程
server制作和client制作2个步骤有些部分是重合,可以此消彼长来替代,比如有时候就需要把一些计算放到client去,来减少server的压力。

cgi并非只是c++这些,cgi代表了服务器端代码。php其实也是一个cgi。
只能说c/c++做这些并非擅长,比如内存管理的问题。

webqq我看有些模块就cgi做的。cgi和生成文件有什么关系?生成提供给client的代码难道不算是生成文件?json和是不是cgi有什么关系?json不就一个数据格式描述,和你用不用cgi有什么关系?你cgi难道不可以构造发送json?

我觉得你是不是把js和cgi搞混了?也就是client和server搞混了?

论坛徽章:
0
14 [报告]
发表于 2012-05-29 14:39 |只看该作者
回复 10# reiase


莫放屁,你根本不懂。

你根本没Cgi的概念。

论坛徽章:
0
15 [报告]
发表于 2012-05-29 14:54 |只看该作者
walleeee 发表于 2012-05-29 14:34
回复 8# AD8018

cgi并非只是c++这些,cgi代表了服务器端代码。php其实也是一个cgi。
只能说c/c++做这些并非擅长,比如内存管理的问题。


我的理解,c似乎比php更擅长内存管理!你这里我不太明白,请指教

论坛徽章:
0
16 [报告]
发表于 2012-05-29 15:15 |只看该作者
walleeee 发表于 2012-05-29 14:34
回复 8# AD8018


还是拿代码说话吧,wt的例子

  1. WPushButton *button
  2.     = new WPushButton("Greet me.", root());              // create a button
  3. button->clicked().connect(this, &HelloApplication::greet);

  4. void HelloApplication::greet()
  5. {
  6.   greeting_->setText("Hello there, " + nameEdit_->text());
  7. }

复制代码
对于熟悉HTML的人来说,用CGI printf出这样的HTML,是再方便不过的事情。
  1. printf("<button onclick='greet()'>Greet me.</button>");
复制代码
wt很明显的,将HTML的内部细节和C++搞到一起了,这个是所谓侵入。
这样做,好处是有一点,隐藏了远程过程调用的细节。
HelloApplication::greet()可以调用服务器端的代码,再将结果返回给客户端。

坏处就太明显了,HTML和C++强度耦合,
想做debug,想改下界面、想兼容某新的浏览器、想应用更新的HTML技术增进显示效果,都要出人命的。
另外还增加学习成本,要学习这些C++ Widget的class,不划算。

json和cgi没关系,只是举个例子














论坛徽章:
0
17 [报告]
发表于 2012-05-29 15:30 |只看该作者
回复 15# aychxm


    滚,你不明白关我什么是

论坛徽章:
0
18 [报告]
发表于 2012-05-29 15:37 |只看该作者
回复 16# AD8018


你那个也是cgi。

问题是你觉得两个代码有什么可比性?

前面那个有更多的控制性,而后面那个就只能是一个普通文本,那不如直接html,你又何必来print?

cgi这些有交互功能。这些都被你忽视了。

如果我要把btn显示为时间,你是不是也要写额外代码?当然,可能会看起来比wt那个简单,问题是有本质区别么?

你错了,正好是cgi才好做跨浏览器,多平台支持,你那个根本不行。

当然,我早就说了c/c++本来做这个就不是强项,而php等等都是更好的选择。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
19 [报告]
发表于 2012-05-29 21:12 |只看该作者
顶楼主,楼主的东西是好东西。

论坛徽章:
0
20 [报告]
发表于 2012-06-05 09:26 |只看该作者
回复 18# walleeee

CGI跟交互没半毛钱关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP