推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
honmaple

前后端分离时 js 如何优雅的重定向

  •  
  •   honmaple · Nov 16, 2016 · 4066 views
    This topic created in 3491 days ago, the information mentioned may be changed or developed.

    如题,有这么一个问题,前后端分离,nginx location / index.html,用户访问 xxx.com 时 index.html 里的 javascript 进行判断用户是否登录,未登录则跳转到 login.html

    那么问题来了,因为有一个判断是否登录的过程,所以访问首页时在跳转前会先显示出后台的内容,虽然这个过程不到 1s就跳到 login.html,请教这有什么办法不显示后台内容就直接重定向呢?谢谢

    13 replies    2016-11-17 12:28:31 +08:00
    learnshare
        1
    learnshare  
       Nov 16, 2016
    前后端分离了,还不用 单页应用 的方式?
    swirling
        2
    swirling  
       Nov 16, 2016
    你判断登录之后再渲染 index 的内容呗。
    ijse
        3
    ijse  
       Nov 16, 2016
    为什么 要用 js 来判断用户是否登陆? 可以 让 nginx 直接判断的。
    otakustay
        4
    otakustay  
       Nov 16, 2016
    前后端分离也没必要把 html 分出去,一般 html 还是放在后端会比较有好处
    liyj144
        5
    liyj144  
       Nov 16, 2016
    针对你的场景,推荐加一个 main.html, 在这里负责页面的跳转,登陆就到 index ,否则到 login
    youhua
        6
    youhua  
       Nov 16, 2016
    难道最简单的办法不是在 Index 的 head 里面写一小段 JS 判断么
    lijsh
        7
    lijsh  
       Nov 16, 2016
    项目有没用前端框架? Vue 有 v-cloak 的指令,类似 Angular 中的 ng-cloak ,可以在状态出来前隐藏页面元素。
    ctsed
        8
    ctsed  
       Nov 16, 2016 via iPhone
    会有安全问题
    moxiaonai
        9
    moxiaonai  
       Nov 16, 2016
    判断结果返回成功之前,先隐藏掉,成功之后显示,反之跳转
    ansheng
        10
    ansheng  
       Nov 16, 2016
    1. 先判断有没有登录
    2. 然后再到后台获取数据
    stiekel
        11
    stiekel  
       Nov 16, 2016
    我这里 Angular ,是在 html 里写一个 loading ,所有资源加载完,再在 Angular 控制器里隐藏掉 loading ,使用 ng-if 控制 ui-router 的 ui-view 。

    不过这个事情,其实最好是在后端做,后端根据登场情况,来确定输出的 html 内容。
    dremy
        12
    dremy  
       Nov 16, 2016 via Android
    既然都前后端分离了,为什么 login 页面还要单独弄一个 login.html 文件呢?路由可以直接去拦截重和定向啊,登录逻辑和业务逻辑都打包到同个 js 文件里去,这样就不会把后台内容显示出来了
    23wEJhKrPYz2uRF5
        13
    23wEJhKrPYz2uRF5  
       Nov 17, 2016
    有的路由可以手动执行回调函数时才显示页面
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4118 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 05:21 · PVG 13:21 · LAX 22:21 · JFK 01:21
    ♥ Do have faith in what you're doing.