微信中 web 小项目架构设计

2015-06-24 13:46:05 +08:00
 chenhaifeng
想请教下各位大神,目前公司后端用J2EE,跟他们商议,他们负责restful接口,我负责前端开发,前端用SPA方式做过一次项目,感觉单页程序不太适合运行在微信中。但又不想用jsp的方式,前端有几个人不会jsp。请问怎么架构比较合适。
3910 次点击
所在节点    问与答
13 条回复
zonghua
2015-06-24 13:56:36 +08:00
jsp不就是写一个表达式标签么?试一下单页应用?
Septembers
2015-06-24 14:21:16 +08:00
后端认真提供好RESTful服务
至于前端扔给前端瞎折腾(比如node.js 什么的
crs0910
2015-06-24 16:12:28 +08:00
为什么不适合 我现在就是这样。就是调试太麻烦了
chenhaifeng
2015-06-24 16:40:32 +08:00
@crs0910 单页程序,怎么加统计代码;还有怎么拿微信的 openid,必须先时后端,再跳到前端吧。
crs0910
2015-06-24 16:44:53 +08:00
@chenhaifeng 不用的,我现在的做法是一进页面就把当前页面 url 当做参数请求后台拿到微信的授权地址,然后跳转到微信授权地址,微信授权后会在你的url后面加一个 code 参数然后跳回来,接着再用这个 code 去请求后台拿到 openId,然后缓存到 localStorage。
这样下次进来就直接有openId了。
crs0910
2015-06-24 16:46:37 +08:00
@chenhaifeng 统计代码没试过,是说统计某一个 router 的页面访问数据吗?这个没试过。
likai
2015-06-24 16:48:31 +08:00
统计?用腾讯自家的统计系统噻
chenhaifeng
2015-06-24 16:52:54 +08:00
@crs0910 统计代码,页面入口和出口只会统计成项目地址,不会把 hash 统计进去,这样就没统计的意义。不过百度是支持 js 调用统计pv 的,腾讯自家则不支持。
我现在碰到最麻烦的问题就是,拿微信的openid要先跳到后端的 servlet,然后再跳到我前端的index.html ,然后就会造成点返回键,回退到后端的 servlet,然后又跳到我的前端,如此循环无法退出系统。 index.html 我又不想用 jsp 代替。
crs0910
2015-06-24 17:04:36 +08:00
@chenhaifeng 用我的方法可以啊,都是 ajax 请求。后端做一个拿授权地址的接口就得了。前台我是先判断有没有 localStorage,没有的话判断 url 里面有没有 code 参数, 也没有的话就请求后台拿到授权地址然后直接跳转, 跳转到授权页面登录后又带着 code 回到你前台页面,然后就可以用 code 去拿 openId 了。
都是 ajax
crs0910
2015-06-24 17:06:25 +08:00
就是第一次打开没授权的话,会出现先看到页面然后跳授权再跳回页面这种体验不好的情况。
crs0910
2015-06-24 17:07:24 +08:00
@chenhaifeng 你前端用的是什么框架?
chenhaifeng
2015-06-24 17:12:52 +08:00
@crs0910 我自己在 riot2.0 的基础上稍微封装了一下,特点是极小,适合移动端。 https://github.com/cheft/cheftjs
chenhaifeng
2015-06-24 17:19:55 +08:00
@crs0910 最近一直在研究 单页面网站(SPA) 如何做 站点统计 和 SEO。
大致可以解决,站点统计大多数提供商支持 _trackPageview ,可以通过 js 调用;
SEO 也有很多人用 prerender.io 来做,基本上可以满足。
惟一不足在微信里面得拿回调code,只能把主页弄成 jsp 页面算了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/200792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX