Avatar billede hoppe11 Nybegynder
09. juli 2009 - 19:42 Der er 10 kommentarer og
1 løsning

AJAX scripts som driller

Jeg har en side med 2 javascipts som loader data til hver deres table ("broadcast" og "activity")

"Broadcast"'en er generelt utrolig langsom til at loade.. Nogle gange loader den slet ikke, nogle gange loades dataen fra "activity" ind i "broadcast"-tablen og nogle gange bliver "activity"-dataen hængende i "broadcast"'en...

http://electrobeat.dk.linux17.wannafind.dk/v2.5/_tst.php

er der nogen som kan sige hvad det skyldes!?
Avatar billede tjens Nybegynder
10. juli 2009 - 20:29 #1
Kan det være fordi funktion json_post kaldes 2 gange og dermed kløjs i hvilken instans der får svar tilbage?

Prøv at kopiere funktionen til et nyt navn, og lad funktion  response_activity bruge den nye.
Avatar billede hoppe11 Nybegynder
10. juli 2009 - 20:54 #2
det har jeg gjort nu, men problemet er stadig det samme


http://electrobeat.dk.linux17.wannafind.dk/v2.5/_tst.php
Avatar billede tjens Nybegynder
10. juli 2009 - 23:50 #3
Den første linie i chrome browserens inspector vindue ser yderst mærkelig ud:
Der står noget med image og foo??
Er tingene mon ikke ordentligt loadet?

Prøv at flytte de 2 startkald til body-onload:
<body onload="response_broadcast();response_activity();">
Avatar billede hoppe11 Nybegynder
11. juli 2009 - 00:11 #4
hvad mener du med image og foo?

nu har jeg flyttet kaldene af funktionerne op i body, men det er stadig det samme
Avatar billede tjens Nybegynder
14. juli 2009 - 12:10 #5
Jeg tror stadig at problemet vedrører de 2 gange xmlhttp, der venter på svar samtidig.

Jeg har fået lavet en stabil version, ved at lave to forskellige navne på xmlhttp variablen og lave dem globale, og droppet det med this/self:

function init() {
    response_activity();
    response_broadcast();
}

var xmlhttp;
if(window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
else if(window.ActiveXObject) xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

function json_post(response, get_str, callback_function, callback_var)
{
   
    xmlhttp.open('POST', response, true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4 && callback_function) {
            eval(callback_function+'('+xmlhttp.responseText+(callback_var ? ', callback_var':'')+')');
        }
    }
    xmlhttp.send(get_str);
}

var xmlhttp2;
if(window.XMLHttpRequest) xmlhttp2 = new XMLHttpRequest();
else if(window.ActiveXObject) xmlhttp2 = new ActiveXObject('Microsoft.XMLHTTP');

function json_post2(response, get_str, callback_function, callback_var)
{
   
    xmlhttp2.open('POST', response, true);
    xmlhttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp2.onreadystatechange = function()
    {
        if(xmlhttp2.readyState == 4 && callback_function) {
            eval(callback_function+'('+xmlhttp2.responseText+(callback_var ? ', callback_var':'')+')');
        }
    }
    xmlhttp2.send(get_str);
}
Avatar billede hoppe11 Nybegynder
14. juli 2009 - 20:42 #6
har været lidt optaget de seneste dage..

jeg får kigget på koden efter weekenden :)

tak for hjælpen indtil videre :)
Avatar billede hoppe11 Nybegynder
14. juli 2009 - 22:45 #7
har lige testet.. og det virker

smid et svar :) og tak for hjælpen! :)
Avatar billede hoppe11 Nybegynder
14. juli 2009 - 23:00 #8
man kan vel også gøre sådan her? :P

det virker i hvert fald

var xmlhttp = [];
function json_post(xml_var, response, get_str, callback_function, callback_var)
{
    if(window.XMLHttpRequest) xmlhttp[xml_var] = new XMLHttpRequest();
    else if(window.ActiveXObject) xmlhttp[xml_var] = new ActiveXObject('Microsoft.XMLHTTP');
   
    xmlhttp[xml_var].open('POST', response, true);
    xmlhttp[xml_var].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp[xml_var].onreadystatechange = function()
    {
        if(xmlhttp[xml_var].readyState == 4 && callback_function) eval(callback_function+'('+xmlhttp[xml_var].responseText+(callback_var ? ', callback_var':'')+')');
    }
    xmlhttp[xml_var].send(get_str);
}
Avatar billede hoppe11 Nybegynder
14. juli 2009 - 23:06 #9
har du evt. tid og mulighed for at knække den her? :)
Avatar billede hoppe11 Nybegynder
14. juli 2009 - 23:06 #10
argh.. jeg må snart i seng.. glemte linket

http://www.eksperten.dk/spm/880744

det er noget af koden fra dette spm
Avatar billede tjens Nybegynder
15. juli 2009 - 09:34 #11
Svar
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