V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
chenhaifeng
V2EX  ›  问与答

微信中 web 小项目架构设计

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