[TYPO3-UG Dutch] Record locking
H. Hahn
h.hahn at hahn-informatica.nl
Thu Sep 11 15:05:03 CEST 2008
Bedankt. Dat punt had ik inderdaad over het hoofd gezien.
Blijft nog wel het feit dat door de zeer uiteenlopende aard van de
verschillende pagina's de editsessies een zeer uiteenlopende lengte
kunnen hebben. Voor sommige pagina's zal vijf minuten prima zijn, voor
andere is een half uur eerder redelijk.
Het idee dat ikzelf opperde, om elke paar minuten te kijken of er nog
handelingen geweest zijn, en zo ja een timout-reset aan te vragen, lijkt
me best zinvol.
Dus blijft de vraag: weet iemand hoe ik zonder iframe en zo mogelijk
zonder Ajax een PHP-script kan starten zonder de pagina opnieuw te laden?
H. Hahn
WP Perquin schreef:
> Heartbeat is juist wel handig.
>
> Wat doe je wanneer iemand zijn computer uitvalt of het scherm wordt gewoon
> afgesloten.
>
> Precies... het veld blijft op lock staan.
> Zolang de heartbeat leeft, het scherm dus geopend is en of de gebruiker nou
> we of niet iets doet, hij blijft gelockt.
>
> Bij een nieuwe gebruiker wordt gekeken of het niet gelocked is OF gelocked
> is EN de laatste heartbeat meer dan 5 minuten geleden is. In beide gevallen
> mag de gebruiker gaan editten.
>
> http://www.google.nl/search?hl=nl&q=javascript+timer&meta=
>
> succes
>
> w-p
>
> -----Oorspronkelijk bericht-----
> Van: typo3-ug-dutch-bounces at lists.netfielders.de
> [mailto:typo3-ug-dutch-bounces at lists.netfielders.de] Namens H. Hahn
> Verzonden: donderdag 11 september 2008 13:37
> Aan: typo3-ug-dutch at lists.netfielders.de
> Onderwerp: Re: [TYPO3-UG Dutch] Record locking
>
> Bedankt. Maar dit lijkt me een vrij zinloze exercitie. Immers als de
> pagina wordt gesloten (en dus de wijzigingen opgeslagen), is de
> editsessie afgelopen en kan de record-locking ook meteen worden
> vrijgegeven. Die timeout is dan dus niet meer nodig.
>
> Het onbewaakt open laten staan van een bewerkbare pagina is natuurlijk
> zeer slordig. Maar zulke dingen gebeuren nu eenmaal en je moet erop
> voorbereid zijn.
>
> Veel zinvoller lijkt me om bij elke handeling (toetsaanslag,
> muisbeweging?) van de gebruiker de timeout te updaten. Maar het lijkt me
> ondoenlijk om bij elke toetsaanslag iets naar de server gaan zitten
> sturen. Is misschien een lokale "actieteller" in javascript een
> oplossing, die bij elke toetsaanslag en/of muisbeweging wordty
> opgehoogd, en elke minuut kijkt of hij inderdaad opgehoogd is (dwz. dat
> er handelingen plaatsvinden), en zo ja een timeoutreset op de server
> aanvraagt?
>
> De volgende vraag wordt dan hoe ik zoiets naar de server stuur. Met Ajax
> heb ik nog nooit gewerkt en ik weet er ook niets van. Met een iframe zou
> het uiteraard kunnen, maar die vermijd ik liever omdat ik gekozen heb
> voor xhtml 1.0 strict (dus zonder frames) en alles correct gevalideerd
> moet worden.
> Kan ik een PHP-script starten door bijv. een img-tag of een script-tag
> een "...php"-bestand als source te geven, waarbij het src-attribuut
> dynamisch (dus NA het laden van de pagina) wordt gewijzigd?
> H. Hahn
>
> Pim Broens - Redkiwi schreef:
>
>> Hoi H.,
>>
>> De heartbeat wordt alleen gebruikt op een openstaande pagina.
>> Zolang die pagina openstaat wordt er iedere x seconden een zogenaamde
>> heartbeat gestuurd die de timestamp update. Zodat, wanneer iemand langer
>> dan 5 minuten koffie drinken is, er nog geen man overboord is.
>>
>> Zodra hij/zij klaar is, sluit men het venster, en zal de heartbeat
>> ophouden. Waardoor de timestamp de 5 minuten zal overschrijden zal het
>> item open staan voor de volgende gebruiker om te editen.
>>
>>
>> Met vriendelijke groet,
>>
>> Pim Broens
>>
>>
>>
>> -----Oorspronkelijk bericht-----
>> Van: typo3-ug-dutch-bounces at lists.netfielders.de
>> [mailto:typo3-ug-dutch-bounces at lists.netfielders.de] Namens H. Hahn
>> Verzonden: donderdag 11 september 2008 12:17
>> Aan: typo3-ug-dutch at lists.netfielders.de
>> Onderwerp: Re: [TYPO3-UG Dutch] Record locking
>>
>> Alvast bedankt. Alleen dat van die heartbeat snap ik niet helemaal. Als
>> ik een timout heb van bijv. 5 minuten, en ik laat automatisch elke
>> minuut dat datum-/tijdveld updaten, dan is het effect per saldo toch
>> hetzelfde als helemaal geen timeout? Tenminste, ik neem aan dat dit
>> datum-/tijdveld bedoeld is als de starttijd van de timeout?
>> H. Hahn
>>
>> Rudy Gnodde schreef:
>>
>>
>>> Hallo H.,
>>>
>>> H. Hahn wrote:
>>>
>>>
>>>> De klant wil met meer dan een redacteur kunnen werken. Het gevaar
>>>> bestaat dus dat redacteur A en redacteur B per ongeluk tegelijk aan
>>>> dezelfde pagina gaan werken. Er is dus een vorm van record locking
>>>> nodig. Daar heb ik alleen geen enkele ervaring mee.
>>>>
>>>> Nu lijkt me een simpele record locking niet zo moeilijk te maken.
>>>> Gewoon een vlag (bijv. een extra veld in de databasetabel) die
>>>> aangeeft dat er iemend bezig is met die alinea (ik heb een record per
>>>>
>>>>
>>
>>
>>>> alinea, dus meerdere records per pagina). Als de betreffende
>>>> redacteur de pagina sluit, wordt de vlag gereset.
>>>>
>>>> Maar als nu intussen door welke oorzaak dan ook de verbinding tussen
>>>> browser en server wegvalt, zou die vlag nooit meer gereset worden en
>>>> het betreffende record dus niet meer wijzigbaar zijn. Een gewone
>>>> timeout lijkt me ook bezwaarlijk; iemand kan immers net even een
>>>> kopje koffie aan het drinken zijn of zo, waardoor die vlag mogelijk
>>>> te vroeg gereset wordt.
>>>> Ook kan ik die vlag in plaats van de waarde "1" (= "bezig") en "0" (=
>>>>
>>>>
>>
>>
>>>> "vrij") de waarde van de session_id resp. "leeg" geven. Bij elke
>>>> poging om iets te wijzigen of op te slaan kan ik de session_id
>>>> vergelijken met die in be browser (cookie fe_typo_user). Maar dat
>>>> levert nog geen criterium op voor het resetten van de vlag.
>>>>
>>>> Weet iemand bruikbare oplossing voor het veilig (dwz. niet te vroeg
>>>> en niet te laat) resetten van zo'n vlag? Graag oplossingen in PHP
>>>> en/of MySQL, maar niet in Typoscript (mijn FE-editing is niet als
>>>> "extensie" uitgevoerd en kan dus niet met TS overweg).
>>>> Bij voorbaat dank.
>>>> H. Hahn
>>>>
>>>>
>>> De beste manier voor een record locking meganisme is om met een
>>> datum/tijd en een timeout te werken. Als iemand een record begint te
>>> bewerken zet je de datum/tijd in een databaseveld. Na bv 5 minuten
>>> geen activiteit is het record weer vrij.
>>>
>>> Nu geef je zelf al aan dat dit niet wenselijk is, want wat als er
>>> iemand langer van 5 minuten weg is om koffie te halen. Dat probleem
>>> kun je oplossen met een heartbeat. Je moet dan via Ajax of een hidden
>>> iframe of iets dergelijks regelmatig automatisch een aanvraag naar de
>>> server doen waardoor het datum/tijd veld wordt geupdate. Als je de
>>> timeout op 5 minuten hebt staan is een heartbeat van eens in de minuut
>>>
>>>
>>
>>
>>> meer dan genoeg.
>>>
>>> Met vriendelijke groet,
>>>
>>> Rudy Gnodde
>>> WIND Internet
>>> http://www.windinternet.nl
>>>
>>>
>> _______________________________________________
>> TYPO3-UG-dutch mailing list
>> TYPO3-UG-dutch at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-dutch
>>
>>
> _______________________________________________
> TYPO3-UG-dutch mailing list
> TYPO3-UG-dutch at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-dutch
>
>
>
More information about the TYPO3-UG-dutch
mailing list