Avatar billede karl-koder Nybegynder
26. marts 2008 - 09:00 Der er 7 kommentarer og
1 løsning

Vise preload bar mens der ventes på svar fra server ?

Hejsa,

I forlængelse af et spørgsmål ang. ajax kunne jeg godt tænke mig at få lidt hjælp til hvordan jeg viser/skjuler en <div></div> imens serveren bliver færdig med at behandle data.

Ajax scriptet ser ud som følger :

function AjaxReq(sMethod, sUrl, oVars, fnCallBack)
{
    var oHttp = new XMLHttpRequest();
    oHttp.open(sMethod, sUrl, true);
    oHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
    oHttp.onreadystatechange = _fnCallBack;
    var aQuery = [];
    for (var x in oVars) aQuery.push( encodeURIComponent(x) + "=" + encodeURIComponent(oVars[x]) );
    oHttp.send( aQuery.join("&") );
    aQuery = null;
               
    function _fnCallBack() {
        if (oHttp.readyState<4) return;
        fnCallBack(oHttp);
        oHttp = null;
    }
    return this;
}

function myCallBack(oHttp)
{
    document.getElementById("latest").firstChild.nodeValue = oHttp.responseText;
}

function addUser()
{
    new AjaxReq("POST", "default.aspx", {"a":"add"}, myCallBack);
}

Jeg formoder der skal placeres noget i min "function myCallBack(oHttp)" metode, men hvordan tjekker jeg op på hvornår der kommer svar fra serveren ?
Avatar billede olebole Juniormester
26. marts 2008 - 17:28 #1
<ole>

function AjaxReq(sMethod, sUrl, oVars, fnCallBack)
{
  // Vis her:
    var oBar = document.getElementById("progressBar");
    oBar.style.display = "block";
   
    var oHttp = new XMLHttpRequest();
    oHttp.open(sMethod, sUrl, true);
    oHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
    oHttp.onreadystatechange = _fnCallBack;
    var aQuery = [];
    for (var x in oVars) aQuery.push( encodeURIComponent(x) + "=" + encodeURIComponent(oVars[x]) );
    oHttp.send( aQuery.join("&") );
    aQuery = null;
               
    function _fnCallBack() {
        if (oHttp.readyState<4) return;
        fnCallBack(oHttp);
      // Skjul her:
        oBar.style.display = "none";
        oHttp = null;
    }
    return this;
}

/mvh
</bole>
Avatar billede karl-koder Nybegynder
26. marts 2008 - 17:58 #2
Det er lige som det skal være ole ;o) Kan du i øvrigt henvise til et sted hvor jeg kan finde dokumentation over DOM ?

På med et svar og tak for hjælpen.
Avatar billede thomas_b Nybegynder
26. marts 2008 - 19:32 #3
er det muligt at lave dette til alm. indlæsning af billeder, tekst og database-værdier ?
Avatar billede olebole Juniormester
26. marts 2008 - 20:16 #4
thomas_b >> Ja, det kan du sagtens. Du kan jo medsende, hvad du vil af variabler. I dokumentet på serveren kan du gøre, hvad du vil med de medsendte variabler - f.eks. lave database opslag - og så skriver du f.eks. noget XML eller (hvad jeg somregel foretrækker) JSON ud til dokumentet. Det kan du efterfølgende parse i browseren og  med DOM indsætte data i elementer.
Jeg har vist lidt Ajax/JSON-eksempler i denne tråd:
    http://www.eksperten.dk/spm/817625

karl-koder >> Hvad DOM angår, er min egen reference W3C - men jeg er på vej med en Ajax-bog med en masse DOM - en del OOP - samt løsninger til at skrive sig udenom problemer med IE's irriterende dårlige garbage collection.
Sidstnævnte er skyld i, at IE ved DOM-scripting som oftest ender i situationer, hvor anvendt hukommelse ikke frigives efter brug. Det kan ende i, at IE må lukkes ned efter nogen tids brug, da den ellers går helt i stå - eller sågar selv ryger på gulvet med et hult suk!
Avatar billede olebole Juniormester
26. marts 2008 - 20:16 #5
- og et svar  ;o)
Avatar billede karl-koder Nybegynder
26. marts 2008 - 20:46 #6
ole >> Det lyder interessant med en bog på dansk, er der nogen deadline på en sådan, eller kan jeg holde øje med en hjemmeside for hvornår den udkommer ?
Avatar billede olebole Juniormester
26. marts 2008 - 21:40 #7
Slutningen af foråret - i løbet af (for)sommeren. Jeg er blevet lidt forsinket p.gr.a. arbejde. Det rygtes nok herinde og ellers hold øje med http://www.dengodekode.dk
Avatar billede karl-koder Nybegynder
26. marts 2008 - 22:26 #8
Det er i orden det vil jeg holde øje med ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester