[PHP] Header 204 teruggeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Topicstarter
Ik zag laatst ergens een leuk voorbeeld van het afhandelen van database save acties e.d.

Het probleem :

Ik heb een hoop schermen in mijn applicatie die er redelijk wat tijd over doen om op te bouwen en alles te checken e.d. Voor elke save (labels, teksten) etc moet de interface weer opnieuw gebouwd worden. En dit terwijl de save zelf eigenlijk practisch geen tijd kost.

Ik ben dus op zoek naar een manier om het anders te doen. Nu zag ik dit :

PHP:
1
header("status: 204");


Dit geeft een HTTP header terug die aangeeft dat er geen content wordt teruggeven. Wat er gebeurt in de browser ( Na tests op Opera/ Netscape / IE ) is dat de data gesubmit wordt en uitgevoerd tot die header en dan gebeurt er helemaal niets meer.

Met andere woorden de huidige interface blijft dan gewoon staan terwijl de data wel opgeslagen is op de achtergrond :) .

(Misschien ook wel een leuk punt voor de search, aangezien ik dit niet kon vinden in de search)

Anyway verder dus. Aangezien je nu alleen maar een loading balk te zien krijgt die ogenschijnlijk afgebroken wordt ( en niet alleen ogenschijnlijk ;) ) kan het voor de gebruiker nogal verwarrend en niet duidelijk zijn of de data nou opgeslagen is of niet.

Daarom wil ik graag een event oid teruggeven via Javascript indien dit gebeurt. Het probleem is dat de Header feitelijk door PHP wordt gedaan en volgens mij geen event oid teruggeeft op het huidige scherm.

Zijn er leuke manieren om dit via PHP of JS af te vangen? Ik kan natuurlijk wel tijdens de submit zo'n 'data saved' scherm te voorschijn toveren ( via een div oid ), maar dat is natuurlijk niet echt en eigenlijk heb ik liever een echte confirmatie die ik terug kan geven.


Wel een beetje randgeval PW/WG trouwens

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • defl8te
  • Registratie: Augustus 2001
  • Laatst online: 09-09-2024

defl8te

weetikkût

dat is wel cool idd, ik ben ben wel benieuwd naar wat slimme mensen hierover kunnen zeggen...

deze staat in mn favorites :)

Chriet Titulaer is de man


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13

pietje63

RTFM

Ligt er een beetje aan of je iets tegen frames hebt.

Anders kun je gewoon een frame toevoegen die elke seconde refresht, zonder moeilijke content, alleen met daarin wel in tekstvorm de laatste submit oid.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Ik hoop dat je het volgende probleem/oplossing omschrijft (ben nogal moe om het hele verhaal goed te begrijpen ;) ) dus even een korte bijdrage.

Ik heb voor upload scripts het volgende gedaan.

Dit als JS:
code:
1
2
3
4
5
6
7
8
9
<script language="JavaScript1.2">
  <!--
  function saveIt() {
   showupload = window.open('items voor popup'); 
   document.newform.savebutton.disabled=true;
   document.newform.submit();
  }
  //-->
</script>


Dit als bodyTag:
code:
1
<body onUnload="showupload.close()" >


En dit voor de button:
code:
1
2
3
<form name="newform" ...en de rest..>
<input type="submit" value="Opslaan" name="savebutton" onclick="saveIt()">
</form>


Als image in de popup gebruik ik deze
Afbeeldingslocatie: http://www.tombartels.com/opslaan.gif

Bij een submit wordt de submit knop uit gezet (gedisabled). Tevens wordt er een popup getoond met de animated gif. Als de upload voltooid is, wordt de nieuwe pagina geladen en tevens de onUnload aangeroepen. Deze sluit het popup venster weer.
Werkt perfect en geeft de popup weer zolang de upload duurt. Moet volgens mij ook werken als er queries worden uitgevoerd die nogal wat tijd vergen om af te ronden.

Voor een mooie frameless popup kun je ook nog deze link gebruiken:
http://www.codelifter.com...azingframelesspopup1.html

Mijn korte bijdrage :)

[ Voor 27% gewijzigd door Verwijderd op 05-12-2003 14:01 ]


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Topicstarter
Euh ja dat is dus wel duidelijk, maar ik heb het echt over iets anders hier :) . Bij jou bouw je nl iedere keer opnieuw de interface op en dat moet niet, omdat dat nou juist het zwaarste is :) .

Daarom gebruik ik dus die header grap. Maar dan kan je uberhaupt niets detecteren over al dan niet een geslaagde submit :)


En frames die elke seconde refreshen? Als je het al over performance hebt, dan moet je zeker niet zoiets gaan doen :X :) . Maar dat hoef ik dus ook helemaal niet te hebben :)

Met die header truc is het dus mogelijk om gewoon een klein stukje PHP uit te voeren terwijl de gebruiker dit niet merkt aan een screen refresh oid, zoals normaal het geval is.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

Verwijderd

Had ik het dus toch verkeert begrepen ;)
Maar och, misschien heeft iemand anders er iets aan :)

Acties:
  • 0 Henk 'm!

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 22:43

Pelle

🚴‍♂️

Je kunt toch ook een hidden (i)frame gebruiken om naar te submitten?
Pagina: 1