php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.08.2011, 16:08  
Benutzer
 
Registriert seit: 15.03.2010
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
1989moni1989 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Parallele Ajax-Aufrufe

Hallo!

Ich suche jetzt schon seit einer Stunde im Internet, finde aber nichts passendes für mein Problem.

Wenn ein User auf meiner Seite auf den Link 'Rechnungen erstellen' klickt, dann kann es sein, dass es sehr lange dauert. Aus diesem Grund möchte ich ihm eine Fortschrittsanzeige auf dem Bildschirm anzeigen.
Ich habe mir das so gedacht: sobald der User auf den Link geklickt hat mache ich einen Ajax-Request der damit beginnt die Rechnungen zu erstellen. Gleichzeitig mache ich nach jeder erstellten Rechnung ein Update auf eine MySQL-Tabelle namens ajaxcounter in der die Anzahl um 1 erhöht wird.
In einer Javascript-Funktion die alle vier Sekunden ausgeführt wird möchte ich nun einen weiteren Ajax-Request machen der diese Variable aus ajaxcounter ausliest und dem User mittels Javascript anzeigt wieviele Rechnungen schon erstellt wurden. Soweit meine Idee...

Es scheitert jedoch daran, dass wenn der lange Ajax-Request läuft ich zwar einen anderen Request absetzen kann, dieser jedoch erst ausgeführt ist wenn der erste abgearbeitet wurde. Das heißt der User würde sehr lange ein leeres Feld sehen weil ich die Anzahl der fertigen Rechnungen erst bekommen wenn alle Rechnungen erstellt und der erste Request somit fertig ist. Anscheinend ist das eine Browsereinschränkung dass nur ein Request gleichzeitig laufen kann.

Kann man das irgendwie umgehen?

Ich habe schon verschiedene Sachen ausprobiert. zB habe ich meine Javascript-Datei von einer anderen Subdomain geladen die auf den gleichen Server zeigt und wollte dann den Ajax-Request auch über diese andere Subdomain machen, das macht der Browser auch nicht...

Wisst ihr eine Lösung für mein Problem?

Lg
Monika
1989moni1989 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.08.2011, 16:19  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von 1989moni1989 Beitrag anzeigen
Anscheinend ist das eine Browsereinschränkung dass nur ein Request gleichzeitig laufen kann.
Browser bauen nur eine bestimmte Anzahl Verbindungen zu einem Server auf, ja.
Aber schon zu Zeiten alter IEs lag das Minimum m.W. immer bei zwei, und in aktuellen Browsern sind es mehr.

Kann es sein, dass du keine asynchronen Requests machst …?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 30.08.2011, 16:24  
Benutzer
 
Registriert seit: 15.03.2010
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
1989moni1989 befindet sich auf einem aufstrebenden Ast
Standard

Ich verwende jquery $.ajax mit dem parameter async: true
Es sollte also asynchron sein soweit ich das in Google lesen konnte...
1989moni1989 ist offline   Mit Zitat antworten
Alt 30.08.2011, 16:26  
Benutzer
 
Registriert seit: 15.03.2010
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
1989moni1989 befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich ein Browserfenster mit der URL http://www.example.com/test.php öffne und dieses Skript dauert zB. eine Minute und ich öffne während es läuft ein neues Tab mit http://www.example.com/test2.php, dann wird dieses auch erst angezeigt wenn das erste fertig ist. Das kommt aber nur wenn ich Dateien vom gleichen Server aufrufe. Das könnte etwas damit zu tun haben oder?

Geändert von 1989moni1989 (30.08.2011 um 16:33 Uhr).
1989moni1989 ist offline   Mit Zitat antworten
Alt 30.08.2011, 16:27  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Bitte Beitrag bearbeiten: http://www.php.de/board-support/anno...URLs_maskieren
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 30.08.2011, 18:45  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Vielleicht liegts an deinem Server? Denn die Beschreibung empfinde ich persönlich als sehr ungewöhnliches Verhalten.

Alternativ: Lese per JS die Anzahl zu erledigende Jobs aus, und sende für jeden Job einen eigenen Request. Dann kannst du nahc der Rechnung diene Anzeige aktualisieren.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 30.08.2011, 19:45  
Benutzer
 
Registriert seit: 15.03.2010
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
1989moni1989 befindet sich auf einem aufstrebenden Ast
Standard

Mir ist das früher auch auf anderen Servern schon aufgefallen. Wenn ich ein langes Script in einem Tab laufen habe dann wartet das nächste Tab auf die Fertigstellung des ersten (sofern es vom gleichen Server kommt).

Dann wird mir wahrscheinlich nichts anderes übrig bleiben als dass ich es mit einzelnen Ajax-Requests mache. Schöner wäre es aber anders... Also wenn ihr noch irgendwelche Ideen habt, dann raus damit

Danke vielmals!

Lg
Monika
1989moni1989 ist offline   Mit Zitat antworten
Alt 30.08.2011, 23:16  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von 1989moni1989 Beitrag anzeigen
Mir ist das früher auch auf anderen Servern schon aufgefallen.
Immer mit dem gleichen Browser?

Dann solltest du vielleicht erst mal kontrollieren, wie dessen Limit bzgl. paralleler Requests an einen Server eingestellt ist ...
(Und bevor du jetzt „und wo finde ich das?“ fragst - bitte selber informieren.)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 31.08.2011, 08:23  
Benutzer
 
Registriert seit: 15.03.2010
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
1989moni1989 befindet sich auf einem aufstrebenden Ast
Standard

Im Firefox ist unter about:config eine maximale Anzahl von 6 enigestallt, also alles ok... Ich werde jetzt den Umweg über einzelne Ajax-Requests gehen...

Danke euch!

Lg
Monika
1989moni1989 ist offline   Mit Zitat antworten
Alt 31.08.2011, 09:51  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Um die einzelnen Requests zu synchronisieren, kannst du promises nutzen:

PHP-Code:
$.when.apply
    $, [ 
        $.
get('url1'),
        $.
get('url2'),
        $.
get('url3')
    ]
)
.
then(function() {
    
console.log('all 3 requests finished')
}); 
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 13 17.05.2012 21:41
PHP Classen via Ajax instanzieren shredding PHP Einsteiger 12 20.04.2011 17:42
[Erledigt] AJAX basierter Iterator mbunge Software-Design 5 05.04.2011 14:45
[Erledigt] Web-Präsentation mit AJAX bbskater JavaScript, Ajax und mehr 3 24.09.2010 15:11
Ajax - Dynamic Content mit JS in DIV laden nickBee HTML, Usability und Barrierefreiheit 8 30.07.2010 14:46
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
AJAX - Variable von PhP erhalten auf möglichst simple Weise? SplitterWind JavaScript, Ajax und mehr 10 10.01.2010 04:34
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
Ajax und include reloaden choice JavaScript, Ajax und mehr 6 10.07.2009 13:47
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
Encoding PHP - AJAX iXtends PHP Tipps 2008 12 10.11.2008 09:36
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
PHP Code mit Ajax Aufrufe "google" - sicher mache dh1sbg PHP-Fortgeschrittene 1 19.03.2007 13:19
Ajax bild.php aktualisieren M3g4Star HTML, Usability und Barrierefreiheit 3 09.03.2007 17:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
parallele ajax, php ajax rechnungen, parallele ajax-aufrufe, rechnung erstellen ajax browser, ajaxaufrufe async, ajax rechnungen erstellen, ajax wieviele request gleichzeitig, ajax parallele aufrufe, wieviele ajax request auf einmal

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum