Avatar billede rix Praktikant
24. januar 2013 - 06:59 Der er 1 løsning

Jqury og Ajax.

Her forleden fik jeg øjene op for hvor fantasik Jqury egenligt er. så jeg gik igang med at lave en lille chat.

problemet er bare at endten kan serveren ikke føgle med eller også går ajax helt amok

systemet er lavet sådan dan at der er en variabel i js som heder LastId.
som har standert værdi 0.

den sender den så med til serveren ved hjælp af $.ajax... og serveren finder så alle de beskeder som er nyere end den.

har sat den til at blive kaldt hver 1500 sekund.
Kan se på min browser webkontrol at den tager 1014ms at hente datene på serveren.

så tænkte jeg at jeg må have lavet en fejl i php og efter at sammenligne de resultater som jeg fik fra browser og id 0 2 og 3 (har kun tre beskeder) men alt ser ud til at fungere fint. ved id 0 viste den tre ved 2 viste den en og 3 intet.

så nu står jeg på bar bund. har prøvet at kalde funktionen som $.ajax er i når funktionen var færdig (fjernede selvf. interval) men lige ledes gik det. har kigget på nettet og fandt $.when men dette kunne jeg slet ikke finde hoved og hale i.

koden ser som sådan ud

                $.ajax({
                  url: "?ajax=GetJson&lastid="+AjaxChat.LastId,
                    dataType: "json",
                    success: AjaxChat.ModtagData,
                    async:false,
                })
              },3000);


og ModtagData ser sådan her ud

        ModtagData : function(data){
            if(!data.empty){
                for(var i=0;i<data.length;i++){
                    var id = parseInt(data[i].id);
                    AjaxChat.LastId = data[i].id;
                    if(AjaxChat.PerseMessage(data[i])){
                        AjaxChat.SetMessage(parseInt(data[i].time),data[i].nick,data[i].message+"|"+id,"chan_"+data[i].cid,"message");
                    }
                    AjaxChat[id] = true;
               
              }
            }
        },


nogle der her en god ide til hvordan jeg kunne få det til at virke?
Avatar billede rix Praktikant
24. januar 2013 - 07:58 #1
Ahh fandt ud af det.
Jeg forventet at serveren ville returner det i række føglen 1,2 og 3
Det viste sig at den gøre det 1,3,2,3,3,3, osv osv. så nu har jeg sat
if(AjaxChat.LastId < data[i].id)AjaxChat.LastId = data[i].id;
så det virker nu :)
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