Maar waarom haal je niet in 1 request de pagina EN de bijbehorende versieinformatie tegelijk op?quote:Op vrijdag 20 april 2007 14:07 schreef George.W.Bush het volgende:
Dat valt wel mee volgens mij. http request 1 trekt de inhoud van een gekozen pagina uit de pagina tabel en plaatst die in mijn fckeditor (getPageBody). In deze funtie heb ik nu getVersions geintegreerd die via een xmlhttprequest een andere query uitvoert die uit de versie tabel het aantal versies van de gekozen pagina haalt en deze toont.
Ik bedacht me later dat dat zou kunnen, maar ik zie niet zo zeer de toegevoegde waarde van een join in mijn query tov 2 xmlhttprequest om de code aan te passen, of zie ik wat over het hoofd?quote:Op vrijdag 20 april 2007 17:12 schreef SuperRembo het volgende:
[..]
Maar waarom haal je niet in 1 request de pagina EN de bijbehorende versieinformatie tegelijk op?
Dat bedoelde ik dus. Is 1 'moeilijkere' query sneller dan twee html requests met 2 maal een simpele select?quote:Op vrijdag 20 april 2007 19:26 schreef SuperRembo het volgende:
Ik zeg niet dat je een join in je query moet stoppen, ik zeg alleen dat je waarschijnlijk beter die resultaten in 1 httprequest kunt versturen. Dat is sneller, belast de server minder en is makkelijker in javascript.
Het is natuurlijk niet zo dat er een 1-op-1 relatie is in het aantal requests en het aantal queries: je kunt met 1 httprequest prima zorgen dat je server side 2 queries uitvoert.quote:Op zondag 22 april 2007 20:17 schreef George.W.Bush het volgende:
[..]
Dat bedoelde ik dus. Is 1 'moeilijkere' query sneller dan twee html requests met 2 maal een simpele select?
Die javascript heb ik nu al, hoewel dit voor toekomstige aanpassingen inderdaad vragen om problemen is
Uiteraard de serverside kant kan natuurlijk van alles uitvoeren, het ging me nu om deze specifieke situatie.quote:Op zondag 22 april 2007 20:24 schreef CraZaay het volgende:
[..]
Het is natuurlijk niet zo dat er een 1-op-1 relatie is in het aantal requests en het aantal queries: je kunt met 1 httprequest prima zorgen dat je server side 2 queries uitvoert.
Waarom kun je in deze specifieke situatie dan niet met 1 httprequest zowel de inhoud van de pagina als de beschikbare versies ophalen? Of zie ik iets over het hoofd?quote:Op zondag 22 april 2007 20:46 schreef George.W.Bush het volgende:
[..]
Uiteraard de serverside kant kan natuurlijk van alles uitvoeren, het ging me nu om deze specifieke situatie.
Dat kan ookquote:Op zondag 22 april 2007 23:31 schreef CraZaay het volgende:
[..]
Waarom kun je in deze specifieke situatie dan niet met 1 httprequest zowel de inhoud van de pagina als de beschikbare versies ophalen? Of zie ik iets over het hoofd?
1 |
1 2 3 4 5 | var reponseData = eval(request.responseText); document.getElementById('PageBody').innerHTML = reponseData.body; document.getElementById('PageVersion').innerHTML = reponseData.version; } |
Hee, interessant! Ik ga dat JSon verder door lezen, ik neem aan dat ik er wat scripts voor op de server moet zetten?quote:Op maandag 23 april 2007 00:25 schreef SuperRembo het volgende:
Nogmaals, je hoeft geen join in je query te stoppen. Je kunt nog steeds die 2 simpele query's uitvoeren. De meeste snelheidswinst haal je doordat je browser niet 2x verbinding met de server hoeft te maken. (En als het een beveiligde pagina is waarvoor je ingelogd moet zijn hoef je maar 1x de sessie te controleren.)
Het is so wie so handig om te weten hoe je meerdere gegevens tegelijk te sturen. De X van ajax staat voor XML; je zou dus XML kunnen gebruiken, maar het werken met XML in javascript (en in PHP) is omslachtig. JSON (zie http://json.org) werkt veel makkelijker. Je stuurt met php bijvoorbeeld
[ code verwijderd ]
In javascript doe je weer een eval() van die tekst:
[ code verwijderd ]
Makkelijk uit te breiden, duidelijk leesbaar en snel![]()
Dus geen 'extra' scripts en dergelijke nodig, Out of the box?quote:JSON is a subset of the object literal notation of JavaScript. Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss.
PHP heeft vanaf versie 5.2 json_encode() en json_decode(). Om json in javascript te decoden kun je eval() gebruiken. De andere kant op gaat iets minder eenvoudig, maar daar zijn makkelijk scripts voor te vinden (bijv. op json.org). Json encoden in javascript heb je eigenlijk niet zo vaak nodig, alleen als je vanuit js (veel) gegevens terug wil posten naar de server.quote:Op maandag 23 april 2007 08:28 schreef George.W.Bush het volgende:
Dus geen 'extra' scripts en dergelijke nodig, Out of the box?
Maar als ik zoals jij hierboven op die manier echo'ed dan kan ik het ook dmv van var reponseData = eval(request.responseText); 'opdelen'? Daarvoor hoef ik geen extra scripts te installeren?quote:Op maandag 23 april 2007 08:40 schreef SuperRembo het volgende:
[..]
PHP heeft vanaf versie 5.2 json_encode() en json_decode(). Om json in javascript te decoden kun je eval() gebruiken.
Dat is inderdaad voor mij op dit moment niet van toepassing. Ik stuur een GET request naar de serverquote:De andere kant op gaat iets minder eenvoudig, maar daar zijn makkelijk scripts voor te vinden (bijv. op json.org). Json encoden in javascript heb je eigenlijk niet zo vaak nodig, alleen als je vanuit js (veel) gegevens terug wil posten naar de server.
Gegeven het feit dat Java niets te maken heeft met Javascript, zou deze opmerking niet meer waarheid kunnen bevatten als je je best zou doenquote:Op maandag 23 april 2007 09:17 schreef geertp het volgende:
Bij de beveiligingsinstellingen staat alles wat met Java te maken heeft ingeschakeld, dus daar zou het hem niet in moeten zitten.
Ik denk dat hij ook even goed moet kijken naar wat hij precies wel en niet aangevinkt heeftquote:Op maandag 23 april 2007 10:23 schreef Litpho het volgende:
[..]
Gegeven het feit dat Java niets te maken heeft met Javascript, zou deze opmerking niet meer waarheid kunnen bevatten als je je best zou doen.
Wat SuperRembo hierboven al zegt: wat let je om twee simpele queries uit te voeren als reactie op 1 request?quote:Op zondag 22 april 2007 23:55 schreef George.W.Bush het volgende:
[..]
Dat kan ookIk stel alleen een tegenvraag... maak het zoveel uit of ik 2 httprequest uitvoer ipv een moeilijke(re) query?
Daarnaast kun je het (bijvoorbeeld voor oudere PHP-versies) ook gewoon als string doen zoals in SuperRembo's voorbeeld.quote:Op maandag 23 april 2007 08:40 schreef SuperRembo het volgende:
[..]
PHP heeft vanaf versie 5.2 json_encode() en json_decode().
1 |
Nee. Die zorgen ervoor dat het een object is. Een object met waardes die je op naam kunt uitlezen.quote:Op maandag 23 april 2007 21:48 schreef SuperRembo het volgende:
Goeie vraag! Alleen weet ik niet of ik zelf wel helemaal begrijp.
De haakjes (de group operator) zorgen er in ieder geval voor dat wat er tussen staat als 1 statement wordt geėvalueerd (zoadat {..} een object wordt) en niet als serie statements (zodat {...} net als een functie-body uitgevoerd wordt).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var foo = {name: 'Bar', value: 'baz'}; // 1.b var foo; eval("foo = {name: 'Bar', value: 'baz'}"); // 1.c var foo = eval("({name: 'Bar', value: 'baz'})"); // 2.a var foo = ['Bar', 'baz']; // 2.b var foo; eval("foo = ['Bar', 'baz']"); // 2.c var foo = eval("['Bar', 'baz']"); |
Dat is omdat de [ ] voor een array staat en { } voor een object. Een gewone array kun je niet als associatieve array gebruiken, een object wel.quote:Op maandag 23 april 2007 22:31 schreef SuperRembo het volgende:
Nee. Het object is dat stuk tussen van { tot }.
[ code verwijderd ]
De vraag is waarom je bij 1.c wel een setje () nodig hebt, en bij het analoge geval 2.c bij een array niet.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |