Jump to content
  • 0

IWP gebruikers dubbel klikken...help!


Peter Wagemans

Question

Bij een klant is er een uitgebreide IWP oplossing draaiend.

 

Ze doet het redelijk. Goed kan je het niet noemen. En dat komt vooral door de Web Publishing Engine, die toch wel wat kuren vertoont.

 

Nog het meest van al heeft men te kampen met de gevolgen van een "dubbel-klik" op knopjes die op de layout staan. Heel wat computergebruikers weten echt niet wanneer je moet klikken en wanneer je moet dubbelklikken met je muis.

 

En dan gebeurt het natuurlijk. De browser stuurt een eerste request, en direct daarop identiek dezelfde. Bij een snelle verbinding en een "frisse" WPE, komt het antwoord snel genoeg terug, maar na een halfuurtje draaien is die WPE niet meer zo "fris", en komt hij iets later terug met een pagina. Een ding is zeker, timing speelt een rol.

 

Gevolg van zo'n "fatale" dubbelklik, is dat de browser zegt dat er geen records gevonden zijn, de gevonden set bestaat uit bijvoorbeeld "record van 7 records" (dus niks op de plaats van waar je je recordnummer zou moeten terugvinden).

Zo'n situatie bestaat gewoon niet in FileMaker. Je kan niet een onbepaald record in een gevonden set hebben.

De error in de pe_applicationlog.txt zeg het heel kort: error 101 , in de volksmond "record not found".

 

Wat je daarna als gebruiker ook probeert, op eender welke knop klikken, terug naar de home pagina gaan en opnieuw het bestand openen... je blijft in die "record not found" zitten.

Tot je browser afsluit en terug opstart. Dan werkt weer alles. Tot je per ongeluk nog eens dubbelklikt.

 

Zijn er andere mensen die dit probleem ervaren met IWP? Het bestaat reeds vanaf versie 7, en de nieuwe versie 8 verhelpt het niet.

 

Ik ben redelijk door mijn opties heen. Heb zelfs al geprobeerd het euvel te vermijden door op de Apache server het aantal concurrent connecties terug te brengen tot 1. Helpt niet.

Ook de server.xml file proberen te tweaken voor het Coyote process op 16018, daar staan ook een paar parameters. Na dat experiment mocht ik zelfs de WPE helemaal herinstalleren, want ik heb het toen definitief om zeep geholpen.

 

HELP! Dit is echt niet fijn ! Ik heb geen oplossing !

Link to comment

19 answers to this question

Recommended Posts

  • 0

Nee, dat is echt niet voldoende. De site is een internet site, en FileMaker voorziet IWP vanuit de FileMaker Server.

Moet het een pear-to-pear Mickey Mouse oplossing zijn, dan zou ik me hier bij neerleggen.

Een site waar concurrent zogezegd 100 web users moeten op kunnen surfen, moet zoiets aankunnen.

 

Het is inderdaad geen goeie keuze van de klant om voor IWP te opteren, maar ik zie hier echt wel een complot. FileMaker spant een val voor haar klanten.

Ziet er heel mooi uit, maar er blijkt nog verschrikkelijk veel mis te gaan met IWP. Een klant kiest gemakkelijk voor IWP, omdat hij of zij initieel denkt dat het een oplossing is die gemakkelijk te maken en te onderhouden is.

En dan blijken er achteraf heel veel zaken niet naar behoren te werken.

De klant heeft de IWP engine en de FileMaker server netjes gescheiden over 2 dual G5s. Er is al een standaard ritueel gemaakt om de IWP engine machine te herstarten, zoveel loopt die vast.

 

Wil je de server doen vastlopen? Heel simpel, met 10 users een kwartiertje surfen op de IWP pagina's. Loopt vanzelf vast.

 

Als een site met andere technologie zo slecht werkt, wordt die niet opgeleverd.

 

Ik accepteer dit gewoon niet van FileMaker.

Link to comment
  • 0
...je blijft in die "record not found" zitten. Tot je browser afsluit en terug opstart. Dan werkt weer alles. Tot je per ongeluk nog eens dubbelklikt...

 

Een wilde opmerking en zeker geen oplossing maar als ik het zo lees lijkt het alsof er in de webbrowser van de client om duistere redenen iets gecached blijft en dit verdwijnt nadat je de browser hebt afgesloten...

Link to comment
  • 0
.....Ik accepteer dit gewoon niet van FileMaker.

 

Doe net als ik, accepteer dat het niet werkt en het onder deze oplossingsrichting ook nooit gaat werken....

 

hoe lekker die worst er ook uit ziet.

 

(hoezeer ik het ook met je eens ben, want het leven zou zo veel aangenamer zijn als het web-database verhaal eens wat eenvoudiger zou worden)

Link to comment
  • 0

Niet echt een cached ding, het is een session cookie, die de IWP server zegt wie de browser is. Die cookie is als het ware je locale identiteit in het virtuele filemakertje dat je locaal op de IWP server bent aan het draaien.

Door de session cookie weet de IWP server wat je record selectie is, welke globals je hebt gezet, enz...

Jammer genoeg kan je niet gemakkelijk die session cookie verwijderen, da's per browser ook verschillend.

Link to comment
  • 0
... Door de session cookie weet de IWP server wat je record selectie is, welke globals je hebt gezet, enz... Jammer genoeg kan je niet gemakkelijk die session cookie verwijderen, da's per browser ook verschillend.

 

Ik vat 'm tsja da's dan een lastige...

 

...FileMaker verdient een pak slaag. Misschien wel van Servoy...

Mmm zeer persoonlijke Servoy ervaringen (welliswaar alweer van een jaar geleden): mooi pakket maar dan kun/kon je tegen andere dingen aanlopen die je eigenlijk niet wilt...

 

Over 10 jaar gaat 't vast allemaal een stuk makkelijker... Zucht... :?

Link to comment
  • 0

Als je nou eens de tijd van de dubbelklik probeert af te vangen?

2 globale variabelen meteen in het script achter de button:

 

Set variable var2 = Get ( CurrentTimeStamp )

If var2 - var1 > 2

Set variable var1 = var2

rest van je script

...

 

2x binnen 2 seconden dit script op dezelfde manier doorlopen kan nu dus niet meer. Je zou var1 nog kunnen initialiseren bij het opstarten maar voor de berekening hoeft dat niet volgens mij.

 

Succes, Chris

Link to comment
  • 0

Leuk bedacht Chris,

 

Misschien zou je ook gewoon de Get(ScriptName) functie gebruiken.

Deze vangt de currently running or paused script af.

 

Dus:

if

isEmpty(get(scriptname)

Exit script (scriptresult er is nog een script aan het runnen)

End if

Link to comment
  • 0

da's inderdaad een zee logische redenering.

Ik ben zo ver gegaan dat ik een $$ variabele zet aan het begin van elke script routine. Als die reeds gezet is -> exit application script stap -> home pagina.

Op het einde van elk script moest ik dus elke keer die variabele terug leeg maken.

Hiermee kon ik dus perfect opvangen dat tijdens dezelfde sessie hetzelfde script 2 x doorlopen werd.

 

Maar... dat hielp dus niet. En daardoor verlies je ook je grip als developer op een applicatie. De Web Publishing Engine is speelgoed, en zelfs slechter te noemen dan de web companion van FileMaker Pro 6.

FileMaker heeft een elegant systeempje veranderd in een waanzinning gecompliceerd, geheugen opsllokken, traag en onstabiel stuk vreten.

Link to comment
  • 0
De Web Publishing Engine is speelgoed, en zelfs slechter te noemen dan de web companion van FileMaker Pro 6.

FileMaker heeft een elegant systeempje veranderd in een waanzinning gecompliceerd, geheugen opsllokken, traag en onstabiel stuk vreten.

 

WOW !

Dan was ik nog mild vorige zaterdag.

Zo durfde ik het op de confituursessie niet te benoemen.

Link to comment
  • 0

Peter, kan het niet zo zijn dat bij jouw eerdere oplossing bij de eerste call het script eerst volledig doorlopen was (en dus ook de $$ var weer gereset was) en waarna dus de tweede call van de tweede muisklik weer vrij spel had?

 

Dan kan mijn manier je wellicht toch helpen omdat het script voor een x aantal seconden niet meer toegankelijk wordt gemaakt.

 

Wat gebeurt er als je in het script een pauze zet? Dat kan misschien helpen in het begrijpen wat er nou precies fout gaat.

 

Je zou ook eens kunnen kijken naar wat er gebeurt als je in de button setup de current script op resume zet. Of al geprobeert?

 

Mijn twee centen

Link to comment
  • 0
Leuk bedacht Chris,

 

Misschien zou je ook gewoon de Get(ScriptName) functie gebruiken.

Deze vangt de currently running or paused script af.

 

Dus:

if

isEmpty(get(scriptname)

Exit script (scriptresult er is nog een script aan het runnen)

End if

 

WJ, met get(scriptname) krijg ik toch gewoon de naam van het script waar de get(scriptname) functie in staat? Dat zal dan altijd gewoon z'n eigen scriptnaam zijn en zou die altijd exit scripten. Wat we nodig hebben is eigenlijk een functie als get(ScriptnamesAllScriptsRunning) en die vergelijken met get(scriptname) maar die bestaat volgens mij niet.

 

Groet, Chris

Link to comment
  • 0

Tja je hebt gelijk. Wou te graag een reply op je geven denk ik :)

 

haha maar ik bedoelde inderdaag zoiets als peter al heeft geprobeerd eerst de scriptname afvangen en als is klaar is leegmaken als ie niet leeg is dan exit script. Maarja nu al gepasseerd station. Lijkt erop dat je filemaker niet moet gebruiken met IWP wat natuurlijk wel beroerd is.

 

Groet,

 

WJ

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...