1

データベースをいくつかの情報で更新しようとしています。重要な情報の 1 つは、ページが最初に読み込まれてからユーザーがボタンをクリックしてからの経過時間です。私のコードは次のようになります。

<script>
function pauseVideo() {
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>");
}
</script>

<html>
<div id="pause" onclick="pauseVideo()">PAUSE</div>
</html>

私のPHPは問題ないので無視してください。私が問題を抱えているのは「timePassed」です。これは、ページが最初に読み込まれてから、ユーザーが PAUSE div をクリックしてからの秒数である必要があります。

クリック時に関数を実行して経過時間を見つけ、その時間変数を $.get() で何らかの方法で使用する必要があると思いますか?

4

4 に答える 4

1

ドキュメントが読み込まれたら、現在の時刻を変数に保存するだけです。

$(document).ready(function() {
    var timeWhenLoaded = (new Date).getTime() / 1000;
});

次に、一時停止ボタンがクリックされたときに、経過した時間を計算します。

function pauseVideo() {
    var currTime = (new Date).getTime() / 1000;
    // time in seconds
    var timePassed = Math.floor(currTime - timeWhenLoaded);
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid'];     ?>&sessionid=<?php echo $_GET['videoid']; ?>");
}
于 2012-07-09T18:02:07.887 に答える
1

HTMLのonclickを取り除き、既存の関数を削除してから、これをページのヘッドセクションに配置します。

(function(){
    var loadTime = (new Date).getTime(); // Page started loading

    $(function(){
        // DOM fully loaded, so move the assignment here if that is what
        // you want to consider as the load time

        $('#pause').click(function(){
            $.get("video_pause.php?pause=" + Math.floor(((new Date).getTime() - loadTime)/1000) + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>");
        });
    });

})();

また、サーバー側ではその変数を信頼できないことにも注意してください。本当に必要な場合は、誰でも負の数を入力したり、値に「ピザ」という単語を入力したりできます。

于 2012-07-09T18:02:28.890 に答える
0

何かのようなもの:

var startTime = (new Date).getTime() / 1000;
function pauseVideo() {
    var curTime = (new Date).getTime() / 1000;
    var timePassed = Math.floor(curTime - startTime);
    $.get("video_pause.php?pause=" + timePassed + "&videoid=<?php echo $_GET['sessionid']; ?>&sessionid=<?php echo $_GET['videoid']; ?>");
}
于 2012-07-09T17:58:56.687 に答える
-1

次のコードを含むページがサーバー側で生成された場合は、次のように、現在の時刻をスクリプトに渡すことができます。

<html>
  <div id="pause" onclick="pauseVideo('" + curTime +"')">PAUSE</div>
</html>

(エコー構文が必要)

または、非表示のフィールドに配置してサーバーに戻します。(そしてphpで計算を行います)このようにして、ページが要求されてから経過した時間を取得します...

于 2012-07-09T18:01:06.737 に答える