2016-10-20 18 views
1

特定のCookieがある場合はログインページから内部ページにリダイレクトしたい、ページの上部にスクリプトを置いたが、スプリットのログインページが表示される秒。ページを読み込んだときに高速リダイレクト

DOMの残りの部分を読み込むのを早くするか一時停止する方法はありますか?リダイレクトするとページが表示されません。

<html> 
<script src="script/jquery-3.1.1.min.js"></script> 
<script src="script/js.cookie.js"></script> 
<script> 
(function() { 
    if (Cookies.get("username")) { 
     $.ajax({ 
      data: { 
       "username": Cookies.get("username"), 
      }, 
      url: "login", 
      success: function (response) { 
       document.open(); 
       document.write(response); 
       document.close(); 
      } 
     }); 
    } 
}()); 

また、サーバーの最初の要求でCookieを送信する方法はありますか?すなわちユーザがサイトのルートURLを要求したときである。

+0

cssを使用してページ全体を非表示にし、Cookieが有効でない場合はページを表示します。 – Sasikumar

+0

HTMLの解析中にブラウザがスクリプトタグを検出すると、解析が中止され、Javascriptインタプリタに渡されます。 [http://stackoverflow.com/a/2920207/4045532](http://stackoverflow.com/a/2920207/4045532)。問題はajax呼び出しであるため、データが返される前にページのレンダリングが表示されます。 @Sasikumarが言及しているように既存のページコンテンツを隠し、Ajaxリクエストが完了したらレンダリングしたり、必要なときにjsに既存のデータを表示したりします。 – Corporalis

答えて

4

は、Cookieが存在dispalyない場合は、他のページには、ログインフォームに

(function() { 
    if (Cookies.get("username")) { 
     $.ajax({ 
      data: { 
       "username": Cookies.get("username"), 
      }, 
      url: "login", 
      success: function (response) { 
       document.open(); 
       $("#login").hide(); 
       document.write(response); 
       document.close(); 
      } 
     }); 
    } 
    else 
    { 
    $("#login").show(); 
    } 
を表示せずにリダイレクト

<div id="login" style="display:hidden">....</div>

とコードのようにsomethig最初に隠さ番目のページ全体を保管してください(私は、Tomcatを使用しています)

+0

体を隠さない理由はありますか? – shinzou

+1

いいえ全身を隠すことはできません。例としてlogin divを使用しました –

関連する問題