6

人が最初にページにアクセスしたときに(アプリにログインした後)、ブートストラップモーダルを表示しようとしています。モーダルを使用して「はじめに」ビデオを提供し、「これを二度と表示しない」チェックボックスを提供して、訪問者が将来のログイン時に「開始モーダル」をバイパスできるようにします。

次のチュートリアルを使用して、ページの読み込み時にモーダルを表示することができました。

ページの読み込み時に Bootstrap Modal を起動する

しかし、ユーザーがログイン後に初めてページにアクセスしたときにのみ表示する方法に行き詰まっています(現在、ページの更新などで起動します)

私はJavaScriptとプログラミングが初めてで、Django Python 2.7.4でアプリを作成しました

時間と専門知識に本当に感謝しています。

4

7 に答える 7

7

これを行うには、Web サイトの訪問間で持続するユーザーに関するデータを保存する手段を使用する必要があります。これは一般にsession. この特定のケースでは、ユーザーがログインしていないように聞こえます。これは、より具体的にはanonymous session.

匿名セッションを保存するために利用できるオプションは多数あります。最も迅速かつ簡単なのはCookieを使用することですが、他のオプションには、ファイルベースのセッション、Html5 ストレージ、またはデータベースが含まれます。

あなたが書いたことから、クッキーはおそらくあなたにとって最良の解決策だと思います.

そして、ご想像のとおり、Django には Cookie の操作を容易にする機能が組み込まれています。これを実装する方法を確認するには、Django セッションに関するドキュメントを参照することをお勧めします。

Django での Cookie (または匿名セッション) の使用について具体的な質問がある場合は、私にお知らせください。

于 2013-05-16T20:06:55.840 に答える
1

まあ、発生したアクションを保存するためにlocalstorageを使用できる ので、それは永続的です。または、たとえば呼び出されたCookieshownを使用して、最初に false に設定し、モーダルが表示された後に true に設定することもできます。

于 2013-05-16T20:09:16.650 に答える
1

Django でこれを行う方法は確かにあるでしょう。たとえば、ユーザーの IP を保存し、その IP のユーザーが「今後これを表示しない」ボタンを押したかどうかを追跡できます。これは、見ないように要求した人にビデオを見せていないことを確実に知る唯一の方法です。フロント エンドでは、ユーザーはいつでも自分の Cookie やローカル ストレージを消去できるため、フロント エンドの追跡が失われる可能性があります。

とはいえ、JavaScript は初めてだとおっしゃっていたので、実際の例を次に示します。

// When the user clicks the button...
localStorage.setItem('no_display', 'true');

// When a user visits the page...
var no_display = localStorage.getItem('no_display');
if (no_display !== 'true') {
  display_the_modal();
}
于 2013-05-16T20:16:13.613 に答える