![]() | 1 c 2012-07-04 15:38:10 +08:00 |
![]() | 2 luztak OP 啊? 我的意思是Web部分和数据部分分开.要127.0.0.1的那种.想用json的0 0 |
![]() | 3 INT21H 2012-07-04 15:47:29 +08:00 激进点,用erlang写个api读取数据,前端全部ajax处理,tornado直接做web server这样如何? |
![]() | 5 INT21H 2012-07-04 15:54:12 +08:00 @luztak 我也在用tornado,其实erlang的特性就是并发,tornado也提供了比较好的异步IO,可以做backend提供api用。 可以看一下这个erlang程序 http://www.chicagoboss.org/ |
![]() | 6 luztak OP @INT2H 恩.刚才找到了 http://github.com/mongodb/mongodb-erlang . |
7 reorx 2012-07-04 16:00:56 +08:00 如果tornado作为client,连接API进行数据处理,数据io可能成为最大的瓶颈,因为你的每一次读写都造成了4次数据的往返。实际上tornado反而更适合做你说的backend/api,而不是提供页面的服务。 |
![]() | 8 adow 2012-07-04 16:06:11 +08:00 我现在就是tornado 中一堆handler只输出json,然后web静态页面上全部ajax调用 |
![]() | 9 luztak OP |
![]() | 10 luztak OP @xeorx 咦…… 每次读,tornado->api请求,api->tornado结果 每次写,tornado->api请求+数据,api->tornado结果 你的意思是一次操作包含读和写么?但这里tornado每次要么get要么post,post部分是交给ajax做的 这样也要全部算上? |
![]() | 11 adow 2012-07-04 16:16:05 +08:00 @luztak 还好啦,比如我弄了好多个静态页面,当然全部放在staitc目录中,原来可以通过/static/index.html 来直接访问,不过url看上去不是很带感. 然后写了一个叫PageHandler的,把/:xxx 的全部用xxx.html 渲染,这样简单些. 不过如果url要求复杂的话只能一个个对应各自的handler了吧,我想反正也就写一个self.render还不算很复杂。 我现在做的这个用PageHander就足够了 |
![]() | 12 reorx 2012-07-04 16:20:23 +08:00 |
![]() | 13 luztak OP @adow 牛人@ @ 我朋友写的个论坛的templates里就是一堆又一堆{% %}/{{ }},.py就是一堆self.db 不过总感觉Ajax效率比较低……因为Ajax get/post回来的结果还要getElementById.innerHTML写进去(jQ我会,只不过觉得开销更大0 0),而页面元素一多这事效率就低了 |
![]() | 16 adow 2012-07-04 16:24:35 +08:00 @luztak 我以前经常弄模版什么的,美工或者前端又不肯写那个模版语言,所以很多时候都是自己做了很多前端工作,而且我一些html/js/css就效率底下,然后我就和前端商量这样,他到还蛮乐意,因为他自己可以实现想要的各种折腾。只是这样的做法我觉得不适合大访问量的网站吧,因为很多请求来着,真的每次读写都是get/post,一个页面有时很多个请求 |
![]() | 18 reorx 2012-07-04 16:41:54 +08:00 @luztak 啊,你名字打错了没有at到我,就没有看到#10的问题。 你理解的没错,其实是2次往返,4次传输 (request - response * 2),不过多一层通信总是多一些麻烦,所以不到万不得已我不会选择那样做。如果真的要做服务间的通信,用protocol buffers或者thrift这些成熟的方案吧。 |
![]() | 20 binux 2012-07-04 17:10:47 +08:00 用PHP这么干过,没用模板,还是XML。。 用aria2输出的JSON-RPC的api做过。。 不过,如无必要,还是算了。。 |
![]() | 21 kernel1983 2012-08-26 22:26:36 +08:00 API化啊, 我已经有好几个网站这么做了, 网站做好了基本mobile API也做好了 秘诀是你需要一个js template引擎, 因为这个underscore.js变得和jquery一样成为了标配 |
![]() | 22 fanzeyi 2012-08-26 22:46:56 +08:00 https://github.com/fanzeyi/Vulpix/blob/master/judge/db/__init__.py#L24 =.= 对于一大堆 self.db 我是这么解决的 =v= 弄个 Mixin 模块 |
23 DeepBlue 2012-08-26 23:14:18 +08:00 要不要试一下nginx conf编辑?好像叫做OpenResty的貌似 |
![]() | 24 imcj 2012-08-26 23:21:24 +08:00 Java里面是这样做的,一般放在DAO里面。他们把这个叫做MVC |
![]() | 25 zieglar 2012-08-26 23:22:50 +08:00 @kernel1983 求详解 |
![]() | 26 kernel1983 2012-09-27 10:47:06 +08:00 |