Ich brauch mal hilfe...
ich habe einen delegaten und eine Funktion.
public delegate string testDel(string t);
public string test(string t) {}
testDel test= new testDel(test);
IAsyncResult asyncResultN= test.BeginInvoke(Prefs, null, null);
Diese Funktion wird aufgerufen und läuft asynchron ab, wenn sie fertig ist, möchte ich ein javascript raushauen oder auch aufs ASP zugreifen. Einfach eine Meldung raushauen, dass fertig. (trotz ggf andere Seite)
Das problem ist, die Seite ist schon fertig geladen.
Ab dann funktioniert es mit
ScriptManager.RegisterStartupScript
ScriptManager.RegisterClientScriptBlock
nicht mehr....
Jmd ne Lösung parat?
Hi,
HTTP Kommunikation funktioniert so nicht. Ein HttpRequest ist an einem bestimmten Zeitpunkt abgeschlossen.
Du müsstest das Senden der Antwort entsprechend verzögern, bis deine Berechnung durchlaufen ist. Genau dafür gibt es das async/await Pattern.
Allerdings darf es dafür auch nicht zulange dauern, denn irgendwann bricht der Client (idr. ja Browser) ab, wenn keine Antwort kommt.
P.S.: Bitte nutze die C#-Code Tags, dann kann man den Code auch gut lesen.
Ja es geht mir wirklich darum, wenn die Seite fertig geladen ist, dass dann im Hintergrund die asynchrone Funktion noch läuft.
Wenn die fertig ist, muss ne Meldung raus, ob javaScript oder anders ist egal. Da das Laden der Seite aber durch ist, kann ich nirgendwo in ASP oder JS drauf zugreifen. Dafür suche ich eine Lösung.
Dazu muss ich auf das Template zugreifen, die Navi. Da Sie auch die Seite gewechselt haben könnten, die Navi/Template ist aber immer konstant da.
Hallo,
WebSocket wäre hier eine Option. Wir im .NET - Bereich von SignalR unterstützt.
glandorf
Websocket wollt ich umgehen, hab ich sohne SignalR schon mit gearbeitet.
Idee die ich noch hatte, per ajax ein webservice abrufen. Nur durchs Seitenwechsel, bin ich noch am überlegen mit der Rückgabe des JS.
Wollt eig auch um webservice drum rum, aber nun gut.
Wenn du mit ASP .NET Web Pages arbeitest, würde ich die ScriptServices in betracht ziehen.
Diese werden dann per JS aufgerufen und dort gibt es dann die Möglichkeit per Callback JS Funktion die OnSuccess und OnError JS Funktionen zu implementieren.
Ist dann wie einen SOAP Webservice umsetzen, nur dass die Aufrufe und auch Rückantworten per JS gemacht werden.
Ist aber nicht mehr State of the Art.
Ein anderer Ansatz wäre sonst z.B. über JS mit WebAPI zu komminizieren und dann per Promise eben den Http Aufruf asynchron laufen zu lassen.
Wäre dann von deiner Seite auch nur ein einfacher Http Request der dann einen entsprechenden Response bekommt.
Wie du es dann schlußendlich lösen willst oder kansnt, ist dann dir überlassen.
Wären aber schon zwei Möglichkeiten, damit du über JS die Anfrage triggern und auf die Rückmeldung asynchron reagieren kannst.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Aktuell rufe ich den Webservice (Scriptservicer aktiv), per Ajax auf.
leider funktioniert hier dir Rückgabe nicht mehr, wenn ich die Seite (Unterpfade) neu geladen oder gewechselt hab. hab.
Ich schau mal in deinem Link, ob ich da was passendes finde
Keine Full Quotes
[Hinweis] Wie poste ich richtig?