php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 13-09-2011, 20:07
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard JS auf return warten?

hi!

es gab schonmal ein thema dazu:

http://www.php-resource.de/forum/htm...erzwingen.html

aber so wie es beschrieben wurde, wartet JS auf das return und macht dann erst in der nächsten zeile weiter?

das klappt aber nicht.

ich habe ein postfach in dem mails (1 zeile = 1 datensatz) gelöscht werden.

function....
{
eintragdel(testlink, poststring);

seiteneuladen(link, parameter);

...
}

ich springe in die funktion eintragdel, dort wird per ajax die php datei zum löschen aufgerufen.

in der eintragdel ist am ende ein "return;" drin.

dann wird die seite vom postfach neu geladen (nach dem löschen)!

machmal dauert die serverrückantwort länger von der funktion eintragdel.

und seiteneuladen wird daher vorher schon ausgeführt.

also kurz und knapp.
JS wartet wohl doch nicht auf return ( sollte eigentlicherst nach dem zurück springen mit seiteneuladen weiter machen????)

jemand eine idee wie ich das problem beheben könnte?

ich möchte ungern in der "eintragdel" den funktionsaufruf "seiteneuladen" rein schreiben. denn das würd sich mächtig summieren. da ich viel JS auf meiner seite habe und die ajax funktion sich schnell aufblähen würde.

DENN:

wie in php ($aufzurunfendefunktion(ID,Nick), einen funktionsNAMEN per Variabler, kann ich in JS nicht machen, stimmts?

denn sonst könnte ich ja das so machen:

eintragdel(testlink, poststring, funktionsnamederdannaufgerufenwird);

aber das ist nicht möglich oder liege ich da falsch?
Mit Zitat antworten
  #2 (permalink)  
Alt 13-09-2011, 20:41
Breezzer
 Registrierter Benutzer
Links : Onlinestatus : Breezzer ist offline
Registriert seit: Nov 2005
Beiträge: 98
Breezzer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du könntest das neuladen als bei erfolgreichem ausführen von ajax zu verwendende funktion definieren.

allerdings ergibt sich mir der sinn nicht wirklich, den du darin siehst, einen ajaxzugriff zu starten, um dann gleich hinterher die seite doch neu zu laden. genau das möchte man mit ajax i.d.R. verhindern, sonst könntest du das löschen doch gleich in einem schwung mit einem pagereload abfertigen. verstehste? ;-)
mein vorschlag wäre, du löscht per ajax die nachricht einerseits tatsächlich, wie du es bisher machst. um die nachricht andererseits aus dem sichtbereich des benutzers zu nehmen und damit den "löscheffekt" zu unterstreichen, kannst du das DOM entsprechend manipulieren. also z.b. den link zur nachricht entfernen.
Mit Zitat antworten
  #3 (permalink)  
Alt 13-09-2011, 20:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gamer20 Beitrag anzeigen
also kurz und knapp.
JS wartet wohl doch nicht auf return
Kurz und knapp: Mach dir bitte klar, wofür das erste A in AJAX steht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 14-09-2011, 05:54
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

ja ich weiß worfür das A steht.

das mit dem postfach war nur ein sehr einfaches beispiel.

naja die ganz seite will ich ja net neu laden, hatte das falsch beschrieben. eigentlich lade ich nur ein größeres DIV neu, welches die datensätze enthält.

klar könne ich beim postfach das einfach ausblenden.

mein gedanke war aber, das das erst passieren soll, wenn die serveranfrage vollständig war.
nicht der das der nutzer sieht das es weg ist und der server das aber nicht gelöscht hat, da es z.b. serverprobleme gibt.

dann wäre der eintrag das nächste mal wieder da.


deswegen sollte, erst nach dem löschen alles weiter verarbeitet werden.

hmm ich könnte per timer aller 200ms prüfen ob return ein wert enthält und im notfall nach 3 sek. abbrechen und fehlermeldung ausgeben lassen, das es serverprobleme gibt.

also seiteneuladen oder fehlermeldung.

oder wäre das eine verdammt hässliche programmierungsweise?

naja im notfall muß ich es doch so machen.


ajaxaufruf

Code:
switch (http_request.readyState)
{
case 4:

if (http_request.readyState == 4 && http_request.status == 200)
{

//wenn erfolgreich funktion neu laden hier aufrufen
// problem nur wenn es viele funktionen werden (weil ich ajax sehr oft benötige, die nach ajax aufgerufen werden

if(Funkt==1) {seiteneuladen(link, parameter);;}
if(Funkt==2) {JSblockladen();}
if(Funkt==3) {JSslideladen();}

usw.

das wäre ja sehr schlechte programmierung (denke ich).

}
Mit Zitat antworten
  #5 (permalink)  
Alt 14-09-2011, 07:25
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gamer20 Beitrag anzeigen
ja ich weiß worfür das A steht.
Dann aber offenbar nicht, was es bedeutet für das Script.

Zitat:
oder wäre das eine verdammt hässliche programmierungsweise?
Mit einem Timer – ja.

Zitat:
das wäre ja sehr schlechte programmierung (denke ich).
Nein, wäre es nicht.

Eventbasiert ist genau die richtige Vorgehensweise bei AJAX.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 14-09-2011, 10:17
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

hmm ok das letzte beispiel habe ich schon früher realisiert. aber ich habe jetzt 11 zeilen mit unterschiedlichen funktionsaufrufen.

hmm schade das JS so unflexibel ist, was funktionsnamen per variabler anbelangt.

aber ich komme da wohl nicht drum herum.

danke für die hilfe!
Mit Zitat antworten
  #7 (permalink)  
Alt 14-09-2011, 10:46
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Mein Senf: Ob der Löschvorgang erfolgreich war oder nicht, braucht man nicht durch Neuladen der übrigen Ergebnisse zu überprüfen. Nach der REST-Philosophie würde man stattdessen erfolgsabhängige HTTP-Status-Codes verwenden, z. B. bei Erfolg 204 oder 200, bei Fehlern 403, 404 oder 409.

Was meinst du mit unflexibel? Natürlich kann man in JS Funktionasnamen per Variable übergeben!
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #8 (permalink)  
Alt 14-09-2011, 13:39
boeserfrosch
 Registrierter Benutzer
Links : Onlinestatus : boeserfrosch ist offline
Registriert seit: Nov 2009
Beiträge: 93
boeserfrosch befindet sich auf einem aufstrebenden Ast
Standard

Oder du baust dein Ajax so auf das es im weitesten Sinne nicht mehr Asynchron läuft.
Ich hab bei manchen Fälle auch solch Probleme gehabt.
Da ging es allerdings darum das ich Werte vom Server brauchte für die weitere Verarbeitung im JS.
Im großen und ganzen lief dann der übrige Skriptablauf dann erst weiter wenn es ein "return" gab.
Mit Zitat antworten
  #9 (permalink)  
Alt 14-09-2011, 13:44
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

das mit den statuscodes ist mir klar.

nur wenn ich in der hauptfunktion in ajax rein springe und in der hauptfunktion 1 zeile weiter drunter in in die funktion "neuladen" rein springe:

funktion{}

ajaxaufruf();
neuladen();

UND ajax länger braucht UND JS schon in der neuladen drin ist (weil es nicht auf das return wartet von ajax). bringt mir die statuscodeabfrage auch nicht viel.

wäre ja umständlich die divs wieder einblenden zu lassen.

das ist ja mein problemchen.

also muß ich in der ajaxfunktion dort erst den funktionsaufruf "neuladen" einbauen.

bei 1 funktion ist das ja kein thema, aber ich habe ja einige funktionen und dann würde die ajaxfunktion sich langsam aufblähen mit lauter funktionsaufrufen). so eine art "liste" wollte ich vermeiden, denn die habe ich ja gerade drin.

ich wollte meine scripte massiv kürzen.
Mit Zitat antworten
  #10 (permalink)  
Alt 14-09-2011, 14:01
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ein AJAX-Aufruf wird immer* länger dauern und Code der darauf folgt wird immer ausgeführt werden, bevor der Response da ist. Offenbar hast du das mit dem „asynchron“ noch nicht verstanden. Nutze Callbacks oder arbeite halt synchron, wenn du den Code so lassen willst.

Edit:
Zitat:
Zitat von Gamer20 Beitrag anzeigen
also muß ich in der ajaxfunktion dort erst den funktionsaufruf "neuladen" einbauen.
Oder du übergibst den Callback einfach an deine AJAX-Funktion.

___
* Falls jetzt jemand davon anfängt, dass es im Synchron-Modus nicht so ist, ich spreche von „AJAX“.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (14-09-2011 um 14:03 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 14-09-2011, 17:54
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Pseudo-Code:
Code:
reload({
    onComplete: function() {
        // do something after reload
    }
});
Mit Zitat antworten
  #12 (permalink)  
Alt 14-09-2011, 19:41
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gamer20 Beitrag anzeigen
hmm schade das JS so unflexibel ist, was funktionsnamen per variabler anbelangt.
Ich kann nur vermuten, was du damit jetzt wieder meinst …

Aber so wie’s aussieht ist wohl eher schade, dass du immer noch so wenig Ahnung davon hast.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Auf Return warten erzwingen Mathis HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 4 07-09-2007 09:41
auf innerhtml warten? RanzigeMilch HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 5 04-11-2006 17:05
[Flash] Warten??? Master X Grafik / Design / Flash ... 1 02-05-2004 15:56
Befehl zum WARTEN vergessen! andik2000 PHP Developer Forum 18 11-03-2004 08:28
Script soll warten Bernd PHP Developer Forum 3 06-11-2001 13:18

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:29 Uhr.