Javascript-Countdown-Timer, der stoppt, wenn das Fenster nicht im Fokus steht

Ok, ich habe Probleme, das zu lösen, ich bin ein PHP / C # Webentwickler und habe keine Erfahrung oder Kenntnisse in Javascript. Ich muss nur das eine tun, was Javascript benötigt:

Wenn eine bestimmte Seite geladen wird, startet ein Zähler. Der Client muss 20 Sekunden auf dieser Seite bleiben. Danach möchte ich PHP-Code ausführen.

Es gibt also zwei Probleme, die mich betreffen: Wie stoppe ich den Zähler, wenn der Client die Seite verlässt (was bedeutet, dass die Seite nicht im Fokus ist).

2) Wie kann ich PHP in Javascript ausführen? , oder rufen Sie eine PHP-Funktion von Javascript.

Der Code, den ich bisher habe, ist folgender:

<html>
<head>
</head>

<body>
<div id='timer'>
<script type="text/javascript">

COUNTER_START = 20

function tick () {
    if (document.getElementById ('counter').firstChild.data > 0) {
        document.getElementById ('counter').firstChild.data = document.getElementById ('counter').firstChild.data - 1
        setTimeout ('tick()', 1000)
    } else {
        document.getElementById ('counter').firstChild.data = 'done'
    }
}

if (document.getElementById) onload = function () {
    var t = document.createTextNode (COUNTER_START)
    var p = document.createElement ('P')
    p.appendChild (t)
    p.setAttribute ('id', 'counter')

    var body = document.getElementsByTagName ('BODY')[0]
    var firstChild = body.getElementsByTagName ('*')[0]

    body.insertBefore (p, firstChild)
    tick()
}

</script>
</div>
</body>
</html>

und ich möchte auch, dass der Timer beginnt zu ticken, wenn der Client wieder auf der Seite ist

Vielen Dank für Ihre Hilfe im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage