0

5 つのサブページ (それぞれに異なるページ リンクがあります) を持つ 1 つのページがあります。私がしようとしているのは、ユーザーが通話に費やした秒数をカウントするタイマーを作成することです。

例えば

main.php  << the landing page
tab1.php  << additional tab
tab2.php  << additional tab
tab3.php  << additional tab
tab4.php  << additional tab

ここでランディングページ「main.php」をクリックして初めて使用するときは、カウンターを開始する必要があり、ユーザーがタブ1、タブ2、タブ3、またはタブ4をクリックした場合、タイマーでユーザーが秒数をカウントする必要がありますそれらのページに費やします。

「ランナー」http://plugins.jquery.com/runner/というjQueryプラグインを使用してページにカウンターを設定しましたが、ユーザーが別のタブに切り替えるとカウンターがリセットされます。私の唯一の問題は、カウンターを失うことなく他のタブに値を運ぶカウンターを作成する方法です。

質問のまとめ 私の質問の核心は、クッキーでライブカウンターを構築する方法ですか? Cookie の値が 1 秒ごとに 1 ずつ増加するようにします。別のページで Cookie をクリアするまで停止しません。

PHPを使用して残りのコードを実行しています

私はあなたの助けに感謝します。

4

2 に答える 2

0

Cookie に開始時刻を保存し、クリアする前に終了時刻を読み取ることができます。または、これを行うためにセッションを使用しますか?

    if(!isset($_SESSION['start'] ))$_SESSION['start'] = time(); //on your landing page 

    $time_spent = time()-$_SESSION['start']; //on your tabs 
于 2013-04-08T20:15:33.663 に答える
0

Javascript で Cookie を設定する方法を探しているかもしれません。本当にしたい場合は、createCookie()毎秒呼び出すことができます。また、ページで実際に費やされた時間を取得するには、開始時間を追跡する必要があります。しかし、これはおそらくあなたが軌道に乗るのを助けるためのものです. とにかく、間違いなくより良いアプローチがあります。他のコメントを聞いてください。

var unixTimestamp = Math.round(new Date().getTime() / 1000);
window.setInterval("createCookie('myCookie', unixTimestamp)", 1000);    

function createCookie(c_name, value) {
    var expires = "";
    document.cookie = c_name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

すでに議論され、https://stackoverflow.com/a/4825695/407697で公開されているように

于 2013-04-08T21:34:12.220 に答える