0

website.com のいくつかのページで、新しい訪問者にいくつかのコンテンツ (紹介) を表示しようとしています。ユーザーが既に見たことがある場合は、ユーザーに再び「迷惑をかけない」ことを望みます。

ユーザーが website.com/cool-article にアクセスすると、上部に紹介が表示され、ユーザーが website.com/useful-article-43 をクリックすると、そのページには紹介が含まれなくなります。または、紹介を残して、2 ページ目のユーザーを下にスクロールする必要がありますか? また、ユーザーがリピーターの場合は紹介を表示したくありません。ウェブサイトはPHPで構築されています。

私の懸念は、これらのソリューションのどれを選択して、SE ボットがコンテンツの変化に腹を立てないようにすることですか? 私が理解していることから、ボットはリファラー情報を持ち込むことはありません。

オプション:

1) Lookup $_SERVER['HTTP_REFERER'] ($httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;)
mywebsite.com または NULL
DO A または Bに設定されている場合

2) ユーザーがページにアクセスしたときに設定される Cookie を保存して確認します。session_start(); if !$_SESSION['intro']
DO A または B
$_SESSION['intro']='introSeen';

3) JS/localStorage 経由ですか?
(不要なコンテンツの読み込み?)

どのようにしますか?

(A&B)

A)ページの紹介をまったくロードしないでください

  • +保存されたリンクをクリックしたユーザーがページに到着したとき、およびユーザーの読み込み時間が短縮されました。
  • -混乱の危険性
  • -ページが同じに見えません。

B) ユーザーを記事まで下にスクロールし、紹介を一番上に置きます。

  • +ユーザーが上にスクロールすると、ページは前と同じように見えます。
  • +ウェブサイトには、すべてのユーザーとボットに対して常に同じコンテンツがあります。
  • -コンテンツの不要な読み込み
4

1 に答える 1

1

この問題を解決するには、Cookie やlocalStorage. このようにして、常に同じコンテンツが提供され、ユーザーのブラウザーが紹介を表示するかどうかを決定します。

ユーザーがアクセスしていない場合に、コンテンツの上に紹介を作成する JavaScript ソリューションを実装するのは簡単です。

(function firstTime() {
    var introduction = '<div id="firstTime">Hello! This is your first time here!</div>';
    if (localStorage.visited === undefined) {
        document.body.innerHTML = introduction + document.body.innerHTML;
        localStorage.visited = true;
    }
})();

あなたのケースで動作するように変更するか、下位互換性を高めるために Cookie を使用することができます。

実際に見てみましょう: http://jsfiddle.net/howderek/WYmkp/5/

于 2013-10-29T14:55:07.790 に答える