Autorius Tema: Atbulinis laiko skaičiavimas iki kito klausimo  (Skaityti 40 kartai)

djsaras

  • Naujokas
  • Žinutės: 23
  • Karma: +1/-0
Sveiki,taigi man reikėtų padaryti tokį dalyką: yra viktorina joje metami klausimai ,ir man reikai kad skaičiuotu laiką atbuline eiga (countdown) ir po 30 sekundžių pakeistų į kitą klausimą dabar esanti klausimą ,tai kaip man tai padaryt ?

Lukas Pukenis

  • Naujokas
  • Žinutės: 10
  • Karma: +0/-0
Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #1 : 2011-03-29 09:34:38 »
Na, jei nori tas 30 sekundžių realiu laiku mažinti, turi naudot JS. Kaip tu to nori jau tavo reikalas. Serverio pusėj, turėtum tiesiog duoti interfeisą kuris duotų naują klausimą, o tu po 30sec su AJAX išsitrauki jį. Nuo tavo aplikacijos logikos priklauso ką turi suprogramuoti :) siunčiant atsakymą į serverį turėtum pasiūsti kartu ir klausimo identifikatoriu ir taip toliau.

Laikrodžio prototipas:

var id;
klausimas = {
    trukme: 30,
    mazint: function() {
        this.trukme--;
    }
}

function laikrodis() {
    klausimas.mazint();
   
    if (klausimas.trukme <= 0) {
clearInterval(id); //Isjungiam laikrodi, nes turinys bus kraunamas
{AJAX DALIS KURI UZKRAUNA NAUJA KLAUSIMA IR JI KAZKUR IDEDA}
                 id = setInterval("laikrodis()", 1000);
        klausimas.trukme = 30;
    }
    document.write(klausimas.trukme+' ');   
}

id = setInterval("laikrodis()", 1000);

Nepamirškim to, kad reikėtų serverio pusėje registruoti, kada klausimas imtas ir ar nėra dirbtinai bandoma paimti klausimą, pvz po 5 sek.

djsaras

  • Naujokas
  • Žinutės: 23
  • Karma: +1/-0
Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #2 : 2011-03-29 09:37:19 »
Bet žinauy kad yra galimybė iš txt failo skaičiuoti laiką su php ,bet aš neįsivaizduoju kaip arba dar žinau yra galimybė iš mysql bazės skaičiuot

Lukas Pukenis

  • Naujokas
  • Žinutės: 10
  • Karma: +0/-0
Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #3 : 2011-03-29 09:40:33 »
Ką turi omeny iš failo skaičiuot? Iš duombazės? Duombazę pasiūliau tik tam, kad registruotum kada ir koks vartotojas klausimą atidarė, nes kas bus jeigu aš pakeisiu savo naršyklės intervalą, iš 30sek į pvz, 0 ? Tada tavo serverį mano pc pradėtu kiek pajėgdamas atakuot:) su AJAX prašymais.

html css photoshop php forumas

Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #3 : 2011-03-29 09:40:33 »

Lukas Liesis

  • Administratorius
  • Herojus
  • Žinutės: 4279
  • Karma: +127/-12
Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #4 : 2011-03-29 11:01:19 »
geriausias jquery pluginas tokiems dalykams:

http://keith-wood.name/countdown.html

jis tikrai palaiko ir patikslinima laiko per ajax'a is php failo, o per php tai tu trauk is kur nori ta laika ar su date() ar is mysql ar is failu ir t.t. tik teks tau gerai paskaityti aprasymus to plugino, kad jis palaiko ko tau reikia tai 100%.


turetu padeti sios funkcijos:

jquery:


function serverTime() {
    var time = null;
    $.ajax({url: 'http://myserver.com/serverTime.php',
        async: false, dataType: 'text',
        success: function(text) {
            time = new Date(text);
        }, error: function(http, message, exc) {
            time = new Date();
    }});
    return time;
}

php failas:

<?php 
header
("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Fri, 1 Jan 2010 00:00:00 GMT"); // Date in the past 
$now = new DateTime(); 
echo 
$now->format("M j, Y H:i:s O")."\n"
?>


cia istraukiau i ju psl. skilties "Time Zones".

jei kyla papildomu klausimu NE apie atgalini sakiciavima, o php ar kt. - susikurk tam tema.
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
Jums patinka manualai.lt projektas?
serveriai.lt 50% nuolaida!

djsaras

  • Naujokas
  • Žinutės: 23
  • Karma: +1/-0
Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #5 : 2011-03-29 11:45:11 »
Ačiū lukai pasinaudosiu tavo variantų :)

html css photoshop php forumas

Re: Atbulinis laiko skaičiavimas iki kito klausimo
« Atsakyti #5 : 2011-03-29 11:45:11 »