Werkt prima op mijn server, maar ik wil iets veranderen, want ik ga het script ergens in integreren:
Er kunnen - logisch - meerdere mensen op verschillende computers aan de lijst werken.
Nu is het zo dat je iets kunt verplaatsen en er een 'save' wordt uitgevoerd.
Maar ik wil maken dat de lijst ook om de 2 seconden vanzelf geüpdatet wordt, zodat je ook ziet wat anderen eventueel aan de volgorde van de lijst veranderd hebben, in de tijd dat je er ook zelf mee bezig bent.
Hoe maak ik dat? Ik weet dat je AJAX kunt gebruiken, en heb van alles geprobeerd, maar ik vind het lastig om de while loop te tussentijds te updaten...
Je kan een setInterval gebruiken, en dan de "save" method die er al is uitvoeren.
setInterval(save, 2000);
Zomaar een vraag: Loop je dan niet de kans dat je oude informatie (her)schrijft terwijl iemand anders het net even eerder heeft aangepast? Opnieuw save lijkt me niet goed, je moet alleen elke 30sec ophalen lijkt mij
Zomaar een vraag: Loop je dan niet de kans dat je oude informatie (her)schrijft terwijl iemand anders het net even eerder heeft aangepast? Opnieuw save lijkt me niet goed, je moet alleen elke 30sec ophalen lijkt mij
Dan maak je een update functie, die je in die interval gooit.
Maar dit sortable ding heeft helemaal geen "state", oftewel, hier is niet voorgeschreven welke elementen op welke positie staan, noch welke gebruikers hier aan bezig zijn. Kortweg: het hele "gedrag" van dit ding is op dit moment ongedefinieerd.
Je zult anders om moeten gaan met deze functionaliteit en dit gedrag verder moeten definiëren, voordat je ook maar kunt overwegen om het zo te maken dat meerdere mensen hier tegelijkertijd aan (verder kunnen) werken (want je zult de "toestand" ook op moeten slaan op een zodanige wijze dat je dit ding later weer kunt initialiseren in die "toestand" zodat je hier weer verder aan kunt werken).
JSON bedoel je?
Op zich valt het reuze mee: https://nl.wikipedia.org/wiki/JSON
Met [php]json_encode[/php] kan je de array met al je data in een JSON-string zetten. Deze haal je met een AJAX-request op, en kan je vervolgens met jQuery's ParseJSON uitlezen.
Verder heeft Thomas ook gelijk. En wat als iemand nou de sortering aanpast, terwijl jij die ook tegelijkertijd aanpast, en voor de nieuwe interval verstuurt. Ik denk dat het nog vrij gecompliceerd is om dit op deze manier te bewerkstelligen.
Een versie-systeem achtig iets lijkt me stukken betrouwbaarder. Daarin kan je complicaties tussen twee bewerkingen naar mijn idee eenvoudig eruit pikken.
Of je negeert mijn opmerking volkomen en begint vrolijk aan je AJAX functionaliteit te bouwen tot het moment dat je je afvraagt wat je met de data die je binnenkrijgt zou moeten doen.
Hoe "praat" deze met je sortable-ding? Hoe kun je daarmee het uiterlijk updaten met externe informatie? Je zult daartoe een intern data formaat (in JavaScript) moeten afspreken en bijhouden. Dit is de eerdergenoemde "toestand" waar ik het over had.
Maar ga rustig aan de slag, ik hoor wel wanneer je zover bent :).