[centraal] Ajaxbugs

Gestart doorLennard256 reacties7.987 weergaven

257 berichten · pagina 17 van 18

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Als Lennard ooit een nieuw forum systeem gaat maken, please NodeJS + AngularJS heart
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dylanh schreef:
Als Lennard ooit een nieuw forum systeem gaat maken, please NodeJS + AngularJS heart
Zou wel tof zijn.
Het ajax systeem is deel voor deel gemaakt in One2xs, en ik denk dat daar teveel tijd over heen is gegaan.

Heb ik ook heel vaak, dat ik iets nieuws probeer (net zoals Lennard met ajax posting op One2xs) en aldoende leer ik, en aan het eind is mijn kennis veridkhoeveeldubbeld en dan heb ik geen tijd / zin om helemaal opnieuw te beginnen.

En on the go zijn er veel dingen aangepast aan het ajax-systeem, zoals optimalisatie en zo zijn er volgens mij best veel dingen uitgehaald.

Heel nieuw forum is niet nodig, want het werkt op zich wel prima. Alleen zijn er wel veel foutjes in.

En node.js is een taal waar je die foutjes veel meer hebt, je moet daar alles goed uitdenken en de manier van werken is heeeeel anders dan php.
Vooral met een forum, heb ook een forum in node gemaakt en die heb ik 3 keer opnieuw moeten maken omdat ik php gewend was.
De eerste keer eindigde ik in een callback hell, de tweede keer was het sloom en veel fouten
een voorbeeld:

Je moet in de controller alle database opdrachten al klaar hebben, zo kan je in de view geen functies gebruiken die async werken

var a = function(id) {
  db.get(sql where id = +id+ blabla, function(res, err) {
    return res[0][id];
  });
}


Als je in de view zon functie aanroept a(1) dan krijg je undefined terug omdat hij niet wacht op db.get.

Dus in de controller moet je een array maken en die naar de view sturen, en als je in 1 tabel je topics hebt en in een andere tabel de posts en andere tabel de users dan moet je alle posts foreachen en dan de user ophalen de post en dat dan samen in 1 array doen.

En dan moet je een controle doen of de nieuwe array (die je naar de view stuurt) even lang is als alle database items. Pas dan kan je de array naar de view sturen.
En als je dan 1 result mist dan laad je pagina niet (blijft oneindig laden omdat er geen response terug gestuurd wordt omdat die if statement niet klopt)
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Waarom doe je die if statement dan?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Hoe moet je anders weten of de array alle resultaten heeft zodat je de view kan renderen?
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Kan je niet gewoon beter Angular de view laten renderen en node in de backend
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Luukieboy schreef:
Dit kan echt niet meer langer...
Ondertussen heeft haast iedereen last van traagheid.
Deze site is toe aan vernieuwing
Sanderc schreef:
Eerdere citaten tonen
Luukieboy schreef:
Dit kan echt niet meer langer...
Ondertussen heeft haast iedereen last van traagheid.
Deze site is toe aan vernieuwing

Jammer om dit toe te geven, maar het is zo...

Vind dit wel erg voor Lennard
Dat weet Lennard / weten we zelf ook wel. Helaas kost alles vernieuwen veel tijd.
Dylanh schreef:
Als Lennard ooit een nieuw forum systeem gaat maken, please NodeJS + AngularJS heart
Waarschijnlijk niet.
Xjessex schreef:
Eerdere citaten tonen
Dylanh schreef:
Als Lennard ooit een nieuw forum systeem gaat maken, please NodeJS + AngularJS heart
Zou wel tof zijn.
Het ajax systeem is deel voor deel gemaakt in One2xs, en ik denk dat daar teveel tijd over heen is gegaan.

Heb ik ook heel vaak, dat ik iets nieuws probeer (net zoals Lennard met ajax posting op One2xs) en aldoende leer ik, en aan het eind is mijn kennis veridkhoeveeldubbeld en dan heb ik geen tijd / zin om helemaal opnieuw te beginnen.

En on the go zijn er veel dingen aangepast aan het ajax-systeem, zoals optimalisatie en zo zijn er volgens mij best veel dingen uitgehaald.

Heel nieuw forum is niet nodig, want het werkt op zich wel prima. Alleen zijn er wel veel foutjes in.
Dit is pretty much de beste opsomming van hoe het er nu voor staat.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dylanh schreef:
Kan je niet gewoon beter Angular de view laten renderen en node in de backend
Ik heb weinig ervaring met angular. Zal er binnenkort eens naar kijken, als je even tijd hebt op Skype binnenkort zal wel chill zijn smile
toevoeging op 10 augustus 2014, 23:29:09:
Rik schreef:
Eerdere citaten tonen
Xjessex schreef:
Eerdere citaten tonen
Dylanh schreef:
Als Lennard ooit een nieuw forum systeem gaat maken, please NodeJS + AngularJS heart
Zou wel tof zijn.
Het ajax systeem is deel voor deel gemaakt in One2xs, en ik denk dat daar teveel tijd over heen is gegaan.

Heb ik ook heel vaak, dat ik iets nieuws probeer (net zoals Lennard met ajax posting op One2xs) en aldoende leer ik, en aan het eind is mijn kennis veridkhoeveeldubbeld en dan heb ik geen tijd / zin om helemaal opnieuw te beginnen.

En on the go zijn er veel dingen aangepast aan het ajax-systeem, zoals optimalisatie en zo zijn er volgens mij best veel dingen uitgehaald.

Heel nieuw forum is niet nodig, want het werkt op zich wel prima. Alleen zijn er wel veel foutjes in.
Dit is pretty much de beste opsomming van hoe het er nu voor staat.
Best herkenbare situatie.
Vooral als je alleen werkt, dus snap sowieso dat zo 1,2,3 het niet helemaal wordt opgelost.
Maar ik vind het wel een prio om ervoor te zorgen dat reacties gewoon snel gepost worden. Aan de server ligt het niet namelijk.
Automatisch samenvoegen (ook ajax) werkt wel altijd gewoon snel.

toevoeging op 10 augustus 2014, 23:29:18:
Oke dat laatste neem ik terug bloos
0
Berichten
7.498
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dan gaan we voor een nieuw jasje voor ome2xs smile
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Wat is de technische redenooo dat het nu opeens veel slechter werkt dan vroeger?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Dylanh schreef:
Wat is de technische redenooo dat het nu opeens veel slechter werkt dan vroeger?
Dat er veel kleine veranderingen zijn geweest is een ding. De database bijvoorbeeld is een ander ding. Wanneer er ergens ook maar iets geen goede indices heeft kan de database naar verloop van tijd steeds langzamer worden met de hoeveelheid posts die er inmiddels zijn.
Voor de rest heb ik ook geen idee waar het nog meer aan kan liggen
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Rik schreef:
Eerdere citaten tonen
Dylanh schreef:
Wat is de technische redenooo dat het nu opeens veel slechter werkt dan vroeger?
Dat er veel kleine veranderingen zijn geweest is een ding. De database bijvoorbeeld is een ander ding. Wanneer er ergens ook maar iets geen goede indices heeft kan de database naar verloop van tijd steeds langzamer worden met de hoeveelheid posts die er inmiddels zijn.
Voor de rest heb ik ook geen idee waar het nog meer aan kan liggen
Het lijkt erop als je op verzend klikt hij wacht tot de eerst volgende update interval en dat hij dan pas je bericht toont. Dat hij dus niet bij elke post een nieuwe update van het topic doet om load te besparen.
Alleen, als je het slim aanpakt (of het echt zo slim is ligt aan de situatie) dan maak je een clientside functie die de post insert.
Voordeel: je post staat er direct zonder extra load
Nadeel: Als je een button (zoals edit) wil aanpassen zou je dit moeten doen op de plaats van server-side en client-side.

Oplossing voor dat nadeel: een functie maken die zowel client als server side gebruikt wordt om een post in een post-div te zetten met de juiste buttons
Oplossing #2: De vorige post clonen (met jquery kan je makkelijk een div clonen) en dan alle buttons hiden en alleen de buttons showen waar je recht op hebt (edit, report, quote, PB, etc)
0
Lennard

Lid · Topicstarter

Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Eerdere citaten tonen
Rik schreef:
Eerdere citaten tonen
Dylanh schreef:
Wat is de technische redenooo dat het nu opeens veel slechter werkt dan vroeger?
Dat er veel kleine veranderingen zijn geweest is een ding. De database bijvoorbeeld is een ander ding. Wanneer er ergens ook maar iets geen goede indices heeft kan de database naar verloop van tijd steeds langzamer worden met de hoeveelheid posts die er inmiddels zijn.
Voor de rest heb ik ook geen idee waar het nog meer aan kan liggen
Het lijkt erop als je op verzend klikt hij wacht tot de eerst volgende update interval en dat hij dan pas je bericht toont. Dat hij dus niet bij elke post een nieuwe update van het topic doet om load te besparen.
Alleen, als je het slim aanpakt (of het echt zo slim is ligt aan de situatie) dan maak je een clientside functie die de post insert.
Voordeel: je post staat er direct zonder extra load
Nadeel: Als je een button (zoals edit) wil aanpassen zou je dit moeten doen op de plaats van server-side en client-side.
Dat lijkt tof en heb ik ooit ook overwogen, maar dan krijg je de valse suggestie dat je post is aangekomen, terwijl je misschien geen internet hebt, uitgelogd bent, of om een andere reden je post niet wordt verwerkt.

Hij wacht nu niet tot de volgende update-interval, maar hij vraagt zelf een update aan zodra de post is verwerkt, en daar zou je nieuwe post bij moeten zitten.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Nja ik denk te veel in nodejs nu. Dat is heel anders dan PHP.
Dan werk je sowieso vaker met sockets en kan je gewoon lompe data heen en weer sturen over de status van je bericht.
Bij verzonden, bij aankomst op de server, bij verwerking op de server en bij response van de server.
Als de socket wegvalt dan komt er te staan dat het posten van je bericht gefaald is (en de server stopt dan met het verwerken van je post)

Maar zo kan je overal wel checks voor inbouwen of de server wel online is emo
0
Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Lennard schreef:
Eerdere citaten tonen
Xjessex schreef:
Eerdere citaten tonen
Rik schreef:
Eerdere citaten tonen
Dylanh schreef:
Wat is de technische redenooo dat het nu opeens veel slechter werkt dan vroeger?
Dat er veel kleine veranderingen zijn geweest is een ding. De database bijvoorbeeld is een ander ding. Wanneer er ergens ook maar iets geen goede indices heeft kan de database naar verloop van tijd steeds langzamer worden met de hoeveelheid posts die er inmiddels zijn.
Voor de rest heb ik ook geen idee waar het nog meer aan kan liggen
Het lijkt erop als je op verzend klikt hij wacht tot de eerst volgende update interval en dat hij dan pas je bericht toont. Dat hij dus niet bij elke post een nieuwe update van het topic doet om load te besparen.
Alleen, als je het slim aanpakt (of het echt zo slim is ligt aan de situatie) dan maak je een clientside functie die de post insert.
Voordeel: je post staat er direct zonder extra load
Nadeel: Als je een button (zoals edit) wil aanpassen zou je dit moeten doen op de plaats van server-side en client-side.
Dat lijkt tof en heb ik ooit ook overwogen, maar dan krijg je de valse suggestie dat je post is aangekomen, terwijl je misschien geen internet hebt, uitgelogd bent, of om een andere reden je post niet wordt verwerkt.

Hij wacht nu niet tot de volgende update-interval, maar hij vraagt zelf een update aan zodra de post is verwerkt, en daar zou je nieuwe post bij moeten zitten.
Overstappen op NginX pompom en vervolgens van de prachtige fastcgi_finish_request() functie gebruik maken, dan hoeft niemand te wachten en kan PHP lekker zijn werk (gedeeltelijk) in de achtergrond doen.
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Als iemand een bericht wijzigt en de post refresht, staat er dat ik het bericht zelf gewijzigd heb..
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren