Bästa sättet att göra en chatruta

Skapad av SkalmanOnDrugs, tisdag 21/2 16:52 i Webbutveckling

1 149
6 inlägg
1 poäng
SkalmanOnDrugs
Visningsbild
P 22 Göteborg Veteran 2 302 inlägg
1
Hej där!

Jag vill göra en chatruta att ha min hemsida och jag undrar lite vad som är bästa lösningen för detta när det gäller prestanda och användarvänlighet.

Jag har redan gjort en färdig prototyp som visserligen fungerade men inte jättebra. Jag använde mig av html, php, en MySQL databas och lite Javascript (jQuery).
Jag har i princip bara ett vanligt html formulär, en textarea och en submit knapp. Formuläret forwardar till samma sida som även har lite php kod i sig som hela tiden kollar efter nya värden 'message' i $_POST arrayen och i så fall lägger i dessa i databasen jag har för chatten. För att chatten ska uppdatera sig själv använde jag mig bara av jQuery's load-funktion, alltså jag har en div som heter chat som hela tiden loadas med innehållet från en fil som heter process_chat.php, som tar fram nytt innehåll och matar ut det i rätt ordning och rätt syntax i diven. Har även gjort så den bara tar med meddelanden som är högst x antal minuter gamla och även rensar bort gamla meddelanden från databas-tabellen med jämna mellanrum. jQuery's load funktion går ju att sättas med ett valfritt intervall så jag kan, om jag vill, sätta ett väldigt lågt intervall så att meddelanden dyker upp väldigt fort.

Problemet här är att ifall jag vill att nya meddelanden i chatten ska komma upp direkt så måste jag sätta ett väldigt lågt intervall, detta gör att man skickar en väldigt många requests till servern. Det kan negativt påverka prestandan. Just nu hostas dessutom min hemsida på en webhost som inte tillåter fler än 2 000 refreshes från samma IP under en 24-timmars period, vilket gjorde att jag själv blev ip-bannad från min egen hemsida när jag skulle testa min chat eftersom jag hade för lågt intervall xD

Ett annat problem är att det inte direkt går superfort att skicka vidare datan från html formuläret till sig själv för att sedan processeras och lagras i databasen. Så även om jag faktiskt har ett lågt intervall på load-funktionen så går det ändå inte så fort som jag hade önskat.

Jag vill helst ha en simpel och lätt chat som fungerar snabbt och smidigt. Exempelvis som chatten som syns på startsidan på HP.

Undrar lite vilken teknik som är bäst för att göra en chat, den behöver absolut inte vara avancerad, bara snabb. (Fast jag vill kunna koda den själv i något webbaserat språk, vill inte använda en färdig chatt och är inte heller intresserad av någon form av Java Applet eller liknande).

Tacksam för tips ^^

¯\_(ツ)_/¯

Gurrewe
Visningsbild
P 17 Östersund Ansvarig Kodis För många inlägg Online
0

Svar till SkalmanOnDrugs [Gå till post]:
För det första så tycker jag att du ska köra submit med AJAX, man vill inte att sidan ska laddas om när man chattar.

Sen så låter det som att du hämtar in alla meddelanden gång på gång, även fast ingenting har ändrats. Det gillar varken din server eller din webbläsare, så en lösning där du bara skriver ut nya inlägg hade varit super.

Du behöver ju inte uppdatera jätteofta, snackis hämtar ny data var tredje sekund.

Att skriva och läsa ifrån databasen är inte heller speciellt optimalt, någon annan lösning som Memcached tillexempel hade varit att föredra.

Pajkastning är det nya blå.

SkalmanOnDrugs
Visningsbild
P 22 Göteborg Veteran 2 302 inlägg
0
[svar:Gurrewe:3929823]
Tack för hjälpen ^^ Har börjat lite på ett test här, men har fastnat rätt rejält. Är inte speciellt erfaren med AJAX eller jQuery så kanske det är det som är problemet.. Så här ser min kod ut:

chat.php
http://pastebin.com/HD2Svg7x

post.php
http://pastebin.com/byrtjBUM

¯\_(ツ)_/¯

Gurrewe
Visningsbild
P 17 Östersund Ansvarig Kodis För många inlägg Online
0

Svar till SkalmanOnDrugs [Gå till post]:
Man får inte skriva JS-kod här på siten, så du får ladda upp någon annanstans.

Pajkastning är det nya blå.

SkalmanOnDrugs
Visningsbild
P 22 Göteborg Veteran 2 302 inlägg
0

Svar till Gurrewe [Gå till post]:
Märkte det. Laddade upp på pastebin nu istället.

¯\_(ツ)_/¯

Gurrewe
Visningsbild
P 17 Östersund Ansvarig Kodis För många inlägg Online
0
Svar till SkalmanOnDrugs [Gå till post]:
Du kör dubbla onclick="" i chat.php.
Men det är snyggare att köra $.('#lalalal').live('click', function() { });



Tillägg av Gurrewe tisdag 21/2 20:55

Du måste även se över säkerheten, folk kommer att kunna hacka sönder dig jättelätt :(

Pajkastning är det nya blå.


Forum » Datorer & IT » Webbutveckling » Bästa sättet att göra en chatruta

Ansvariga ordningsvakter: Syndafloden moodh

Användare som läser i den här tråden just nu

1 utloggad

Modereringsnivå: Hård

Trådarna är seriösa! Du ska kunna sköta dig och kunna argumentera utan påhopp. Off Topic är något vi inte gillar och vi går in och antingen tar bort inlägg eller låser tråden. Hårdare än normal men slappare än stenhård.

Visa mer information

Bedömmer vi att en tråd är oseriös eller inte leder till debatt enligt nivån på kategorin så ger vi oss själva rätten att flytta den till en mer passande del av forumet.

Vi ger oss rätten att gå in och ändra inlägg för att ta bort omogenheter eller lägga upp texten så
att det är enklare för andra att läsa (rättstavning, styckesinledning) om det ser illa ut.

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.