Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML/JS] Image tijdens AJAX request

Pagina: 1
Acties:
  • 155 views sinds 30-01-2008
  • Reageer

  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 19:01
Op mijn website doe ik een AJAX request naar een server die thuis staat...het duurt soms wel een seconde of 3 (pfuuu :P ) voordat die request klaar is, en in de tussentijd zou ik graag een throbber Afbeeldingslocatie: http://www.ozemail.com.au/img/Throbber-mac.gif willen laten zien.

Hoe pak ik dit aan? Googlen naar dit onderwerp levert mij echt duizenden loading images op maar niet de manier waarop ik het moet uitvoeren!!

Ik had de volgende hersenscheet al gehad:


Dit is m'n AJAX request code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
function BarcodeCheck(value)
{
    xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true);//method, target, async (set always true!)
    
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {
            eval ( xmlhttp.responseText );
        }
    }
    
    xmlhttp.send(null);
}


Is het dan logisch om bij xmlhttp.readyState==1 een <div> weer te geven die ik weer laat verdwijnen als xmlhttp.readyState==4 bereikt heeft?
En hoe doe ik dit precies? Ik snap nog precies hoe de if / else statements werken in JS (in PHP werken ze iets anders :+ )

[ Voor 6% gewijzigd door WoBBeL op 16-09-2007 19:51 ]


Verwijderd

Strategie 1
- Voor je de daadwerkelijk request doet, zet je de throbber aan.
- Zodra je een resultaat terughebt, zet je de throbber weer uit.

Strategie 2
- Voordat je ook maar iets doet, zet je de throbber aan.
- Nadat je het teruggegeven resultaat hebt verwerkt, zet je de throbber weer uit.

En serieus. Als je het gewoon had geprobeerd was je nu al klaar geweest.

  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 19:01
Verwijderd schreef op zondag 16 september 2007 @ 19:57:
Strategie 1
- Voor je de daadwerkelijk request doet, zet je de throbber aan.
- Zodra je een resultaat terughebt, zet je de throbber weer uit.

Strategie 2
- Voordat je ook maar iets doet, zet je de throbber aan.
- Nadat je het teruggegeven resultaat hebt verwerkt, zet je de throbber weer uit.

En serieus. Als je het gewoon had geprobeerd was je nu al klaar geweest.
Probleem is dus dat ik totaal geen javascript kan en ik nu beetje aan het kijken ben hoe ik eea aan moet pakken en wat de slimste strategien zijn om problemen als deze op te lossen.

  • pin_point
  • Registratie: April 2005
  • Laatst online: 23:17
Mijn ajax kennis is nou niet helemaal je van het, maar zoals cheatah al aangeeft met bijv. strategie 1, en jijzelf met "xmlhttp.readyState" aangeeft, kun je het volgens mij ook op deze manieren toepassen

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (xmlhttp.readyState == 1)
  {
    <div id="throbber" style=" visibility:visible"><img src="throbber.gif" /> </div>
  }elseif (xmlhttp.readyState == 4)
    {
      <div id="throbber" style="visibility:hidden"></div>
    }


// Of met een while lus

while (xmlhttp.readyState != 4)
  {
    <div id="throbber" style="visibility:visible"> <img src="throbber.gif" /> </div>
  }


Heb de code niet getest, maar dit is wat er in mij opkomt om zoiets weer te laten geven.

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
xost schreef op zondag 16 september 2007 @ 20:01:
[...]


Probleem is dus dat ik totaal geen javascript kan en ik nu beetje aan het kijken ben hoe ik eea aan moet pakken en wat de slimste strategien zijn om problemen als deze op te lossen.
Strategie 3:
- Leer Javascript
- Strategie 1

  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 19:01
Oke, bedankt voor de hulp.

Zodra ik de functie aanroep waarin de AJAX code zit ga ik ook de throbber weergeven. Als ik dan readystate 4 bereik laat ik de throbber weer verdwijnen.

Verwijderd

pin_point schreef op maandag 17 september 2007 @ 10:02:
Mijn ajax kennis is nou niet helemaal je van het, maar zoals cheatah al aangeeft met bijv. strategie 1, en jijzelf met "xmlhttp.readyState" aangeeft, kun je het volgens mij ook op deze manieren toepassen

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (xmlhttp.readyState == 1)
  {
    <div id="throbber" style=" visibility:visible"><img src="throbber.gif" /> </div>
  }elseif (xmlhttp.readyState == 4)
    {
      <div id="throbber" style="visibility:hidden"></div>
    }


// Of met een while lus

while (xmlhttp.readyState != 4)
  {
    <div id="throbber" style="visibility:visible"> <img src="throbber.gif" /> </div>
  }


Heb de code niet getest, maar dit is wat er in mij opkomt om zoiets weer te laten geven.
helaas werkt e4x alleen in firefox ;)

  • pin_point
  • Registratie: April 2005
  • Laatst online: 23:17
Mag je mij uitleggen wat je met e4x bedoelt.

Heb zelf even lopen denken en kom tot de bedenking dat 't volgens mij alleen werkt met de while lus, maar weet dus niet of dat ook in IE gaat werken na wat mophor zegt

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 28-11 01:05
Strategie 5:
Gebruik Mootools \o/
www.mootools.net

There is no replacement for displacement!

Pagina: 1