V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chenhaifeng
V2EX  ›  问与答

微信中 web 小项目架构设计

  •  
  •   chenhaifeng · 2015-06-24 13:46:05 +08:00 · 3910 次点击
    这是一个创建于 3441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想请教下各位大神,目前公司后端用J2EE,跟他们商议,他们负责restful接口,我负责前端开发,前端用SPA方式做过一次项目,感觉单页程序不太适合运行在微信中。但又不想用jsp的方式,前端有几个人不会jsp。请问怎么架构比较合适。
    13 条回复    2015-06-24 17:19:55 +08:00
    zonghua
        1
    zonghua  
       2015-06-24 13:56:36 +08:00 via iPhone
    jsp不就是写一个表达式标签么?试一下单页应用?
    Septembers
        2
    Septembers  
       2015-06-24 14:21:16 +08:00
    后端认真提供好RESTful服务
    至于前端扔给前端瞎折腾(比如node.js 什么的
    crs0910
        3
    crs0910  
       2015-06-24 16:12:28 +08:00 via iPhone
    为什么不适合 我现在就是这样。就是调试太麻烦了
    chenhaifeng
        4
    chenhaifeng  
    OP
       2015-06-24 16:40:32 +08:00
    @crs0910 单页程序,怎么加统计代码;还有怎么拿微信的 openid,必须先时后端,再跳到前端吧。
    crs0910
        5
    crs0910  
       2015-06-24 16:44:53 +08:00
    @chenhaifeng 不用的,我现在的做法是一进页面就把当前页面 url 当做参数请求后台拿到微信的授权地址,然后跳转到微信授权地址,微信授权后会在你的url后面加一个 code 参数然后跳回来,接着再用这个 code 去请求后台拿到 openId,然后缓存到 localStorage。
    这样下次进来就直接有openId了。
    crs0910
        6
    crs0910  
       2015-06-24 16:46:37 +08:00
    @chenhaifeng 统计代码没试过,是说统计某一个 router 的页面访问数据吗?这个没试过。
    likai
        7
    likai  
       2015-06-24 16:48:31 +08:00
    统计?用腾讯自家的统计系统噻
    chenhaifeng
        8
    chenhaifeng  
    OP
       2015-06-24 16:52:54 +08:00
    @crs0910 统计代码,页面入口和出口只会统计成项目地址,不会把 hash 统计进去,这样就没统计的意义。不过百度是支持 js 调用统计pv 的,腾讯自家则不支持。
    我现在碰到最麻烦的问题就是,拿微信的openid要先跳到后端的 servlet,然后再跳到我前端的index.html ,然后就会造成点返回键,回退到后端的 servlet,然后又跳到我的前端,如此循环无法退出系统。 index.html 我又不想用 jsp 代替。
    crs0910
        9
    crs0910  
       2015-06-24 17:04:36 +08:00
    @chenhaifeng 用我的方法可以啊,都是 ajax 请求。后端做一个拿授权地址的接口就得了。前台我是先判断有没有 localStorage,没有的话判断 url 里面有没有 code 参数, 也没有的话就请求后台拿到授权地址然后直接跳转, 跳转到授权页面登录后又带着 code 回到你前台页面,然后就可以用 code 去拿 openId 了。
    都是 ajax
    crs0910
        10
    crs0910  
       2015-06-24 17:06:25 +08:00
    就是第一次打开没授权的话,会出现先看到页面然后跳授权再跳回页面这种体验不好的情况。
    crs0910
        11
    crs0910  
       2015-06-24 17:07:24 +08:00
    @chenhaifeng 你前端用的是什么框架?
    chenhaifeng
        12
    chenhaifeng  
    OP
       2015-06-24 17:12:52 +08:00
    @crs0910 我自己在 riot2.0 的基础上稍微封装了一下,特点是极小,适合移动端。 https://github.com/cheft/cheftjs
    chenhaifeng
        13
    chenhaifeng  
    OP
       2015-06-24 17:19:55 +08:00
    @crs0910 最近一直在研究 单页面网站(SPA) 如何做 站点统计 和 SEO。
    大致可以解决,站点统计大多数提供商支持 _trackPageview ,可以通过 js 调用;
    SEO 也有很多人用 prerender.io 来做,基本上可以满足。
    惟一不足在微信里面得拿回调code,只能把主页弄成 jsp 页面算了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.