javascript functie tegelijk uitvoeren (Ajax)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marvin H

Marvin H

24/09/2012 10:57:42
Quote Anchor link
Ik heb wat op internet gegoogled, echter kan ik niet echt een passende oplossing vinden voor onderstaande functie. Hoe kan ik ervoor zorgen dat de twee functies op regel 19 en 20 tegelijk starten en niet op elkaar wachten en dus één voor één uitvoeren?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function opmerking(){
    var ajaxRequest;    
    try{
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("Your browser broke!");
                return false;
            }
        }
    }
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){    
            viewproject(uniqueid,taskname);
            email(project,'opmerking',door,opmerking,'levering@****.nl');
        }
    }
    
        var opmerking = escape(CKEDITOR.instances['editor1'].getData());
        var uniqueid = escape(document.getElementById("uniqueid").value);
        var project = document.getElementById("project").value;
        var door = document.getElementById("door").value;        
        var currentTime = new Date();
        var taskname = "<center><b>Opmerking is opgeslagen "+ currentTime.getHours( ) +":"+ currentTime.getMinutes( ) +":"+ currentTime.getSeconds( ) + "</center></b>";
        
        ajaxRequest.open("POST","./includes/viewproject.php",true);
        ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ajaxRequest.send("nocache=" + new Date( ).getTime() + "&opmerking=" + opmerking + "&uniqueid="+ uniqueid + "&editor1=1");
}
Gewijzigd op 24/09/2012 10:58:25 door Marvin H
 
PHP hulp

PHP hulp

18/04/2024 19:32:36
 
Kris Peeters

Kris Peeters

24/09/2012 11:48:54
Quote Anchor link
Wat is function viewproject()
en wat is function email()
?
 
Marvin H

Marvin H

24/09/2012 12:28:41
Quote Anchor link
viewproject roept een PHP file aan die daarna wordt weergegeven in een div, en email verstuurd een e-mail...

Hoe kan ik ervoor zorgen dat deze beide tegelijk uitgevoerd worden en niet één voor één?
 
Kris Peeters

Kris Peeters

24/09/2012 12:52:24
Quote Anchor link
Zorg ervoor dat beide functionaliteiten in 1 php-verzoek gebeuren.

Dus wat knippen/plakken met de php-files voor email en viewproject.
Dan gebeurt het sowieso in 1 verzoek en dus tegelijkertijd.

Ofwel ...

Ofwel herschik je de twee javascript functies een beetje, zodat ze op mekaar wachten.
Dan ga je de ene functie pas aanroepen op het moment dat de vorige stap klaar is. En dan stel je de display van viewproject() naar het scherm van de gebruiker wat uit tot alles klaar is.
Kan je die functies eens posten?
 
Marvin H

Marvin H

24/09/2012 12:55:06
Quote Anchor link
De functies hoeven niet op elkaar te wachten. Ik zoek een manier (o.a. voor deze functie) om verschillende functies van javascript tegelijk uit te voeren, zonder dat ze op elkaar wachten.
 
Kris Peeters

Kris Peeters

24/09/2012 14:46:48
Quote Anchor link
Wacht even ...
Het uitvoeren van viewproject() gebeurt al in de respons van een ajax request.
Dus wanneer viewproject() wordt uitgevoerd, is het contact met viewproject.php al gemaakt (en je hebt succesvol een antwoord terug).

Vandaar mijn vraag wat die functies verder nog doen.
Moet viewproject() nog eens contact opnemen met de server? email() moet sowieso nog eens langs de server.

Zolang ik niet weet wat die twee functies precies zijn, kan ik niets doen.
 
Marvin H

Marvin H

24/09/2012 14:56:13
Quote Anchor link
hieronder de twee functies:

Viewproject()
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function viewproject(uniqueid,taskname){
    var ajaxRequest;    
    try{
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("Your browser broke!");
                return false;
            }
        }
    }
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.getElementById("content").innerHTML = ajaxRequest.responseText;
                if (CKEDITOR.instances['editor1'] || CKEDITOR.instances['editor2']) {      
                    delete CKEDITOR.instances['editor1']};                
                CKEDITOR.replace( 'editor1',{height: 175});
            
            if(taskname != undefined){
                if(taskname != ''){
                    document.getElementById("content_float_header").innerHTML = taskname;
                    document.getElementById("content_float_header").style.visibility = 'visible';
                    document.getElementById("content_float").style.visibility = 'hidden';
                    HideMenus("content_float_header");
                }
            }
        }
    }
    locked(uniqueid,'0');
    ajaxRequest.open("POST","./includes/viewproject.php",true);
    ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    ajaxRequest.send("nocache=" + new Date( ).getTime() + "&uniqueid=" + uniqueid);
}



email()
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function email(project,gewijzigd,door,inhoud,to){
    var ajaxRequest;    
    try{
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("Your browser broke!");
                return false;
            }
        }
    }
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
                //nothing
        }
    }
    
    var projectsend = escape(project);
    var gewijzigdsend = escape(gewijzigd);
    var doorsend = escape(door);
    var inhoudsend = inhoud;
    var tosend = escape(to);
    
    ajaxRequest.open("POST","email.php",true);
    ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    ajaxRequest.send("nocache=" + new Date( ).getTime() + "&project=" + projectsend + "&gewijzigd=" + gewijzigdsend + "&door=" + doorsend + "&inhoud=" + inhoudsend + "&to=" + tosend);
}
 
Marvin H

Marvin H

26/09/2012 09:52:09
Quote Anchor link
@Kris,

Weet je toevallig een oplossing?

Marvin
 
Marvin H

Marvin H

27/09/2012 11:24:25
Quote Anchor link
Niemand weet hoe ik de Ajax/javascript functies tegelijk kan draaien zonder dat ze op elkaar wachten?
 
Marvin H

Marvin H

01/10/2012 11:21:18
Quote Anchor link
[SLOTJE!]
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.